2013-07-24 32 views
0

我有一个sring,我需要煞有其事的天气,它具有正确的XML格式,如一致的开始和结束标记。
验证字符串值具有正确的XML格式

对不起,我试图使字符串值格式正确,但不能:)。

string parameter="<HostName>Arasanalu</HostName><AdminUserName>Administrator</AdminUserName><AdminPassword>A1234</AdminPassword><placeNumber>38</PlaceNumber>" 

我试着用下面的检查:

public bool IsValidXML(string value) 
{ 
    try 
    { 
     // Check we actually have a value 
     if (string.IsNullOrEmpty(value) == false) 
     { 
      // Try to load the value into a document 
      XmlDocument xmlDoc = new XmlDocument(); 

      xmlDoc.LoadXml(parameter); 

      // If we managed with no exception then this is valid XML! 
      return true; 
     } 
     else 
     { 
      // A blank value is not valid xml 
      return false; 
     } 
    } 
    catch (System.Xml.XmlException) 
    { 
     return false; 
    } 
} 

它被扔错误纠正,以及格式错误。

请让我知道我该怎么做。

问候,

+0

有没有检查这个格式它只会被异常 – Bunny

+0

这是一个错字'<< AdminUserName>'?并在最后与'
'一起做什么? – V4Vendetta

+0

是错字实际字符串是字符串参数= “ Arasanalu<< AdminUserName> Administrator A1234 38”; – channa

回答

1

字符串的内容,你有没有真正形成有效的XML文档

它缺少一个根元素

string parameter="<HostName>Arasanalu</HostName><AdminUserName>Administrator</AdminUserName><AdminPassword>A1234</AdminPassword><PlaceNumber>38</PlaceNumber>"; 
XmlDocument doc = new XmlDocument(); \ 
doc.LoadXml("<root>" + parameter + "</root>"); // this adds a root element and makes it Valid 

Root Element

只有一个元素叫做 其中一部分出现在任何其他元素的内容中。]对于所有 其他元素,如果开始标记位于另一个元素的内容中,则 结束标记位于内容中相同的元素。更简单地说, 由开始和结束标签分隔的元素彼此适当地嵌套在 内。

0

总是把适当的标签放在变量中。在代码之前和之后放置<root>标记。尝试下面的代码。

 try 
     { 
      string unformattedXml = "<Root><HostName>Arasanalu</HostName><AdminUserName>Administrator</AdminUserName><AdminPassword>A1234</AdminPassword><PlaceNumber>38</PlaceNumber></Root>"; 
      string formattedXml = XElement.Parse(unformattedXml).ToString(); 
      return true; 
     } 
     catch (Exception e) 
     { 
      return false; 
     } 
+0

谢谢你的代码:我无法调用XElement。解析。 – channa

+0

我无法调用XElement.parse。 XmlElement xmlelement = new XmlElement(); xmlelement.parse不存在:我们是否需要包含任何? – channa

+0

使用'System.Xml.Linq;'使用 –