验证字符串值具有正确的XML格式

时间:2013-07-24 06:47:27

标签: c#

我正在为我需要的天气设置它具有正确的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;
    }
}

正确和错误的格式都会出错。

请告诉我如何继续。

的问候,

2 个答案:

答案 0 :(得分: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

  

只有一个元素,称为root或document元素,no   其中一部分出现在任何其他元素的内容中。]对于所有人   其他元素,如果start-tag在另一个元素的内容中,   结束标记位于同一元素的内容中。更简单地说,   由开始和结束标记分隔的元素在其中正确嵌套   彼此。

答案 1 :(得分: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;
        }