0

我有一个需要检查天气的 sring,它具有正确的 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;
    }
}

它为正确和错误的格式抛出错误。

请让我知道我该如何继续。

问候,
香娜

4

2 回答 2

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

根元素

只有一个元素,称为根或文档元素,它的任何部分都不会出现在任何其他元素的内容中。] 对于所有其他元素,如果开始标签在另一个元素的内容中,则结束标签是在同一个元素的内容中。更简单地说,由开始标签和结束标签分隔的元素相互嵌套。

于 2013-07-24T07:01:01.237 回答
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;
        }
于 2013-07-24T07:39:35.210 回答