解析Windows Phone中的单个XML节点

时间:2014-04-02 05:22:39

标签: xml c#-4.0 windows-phone-8

如何在Windows Phone中解析单个xml节点,我已在代码中描述了我的Web服务结果:

    void abcd_Completed(object sender, ServiceReference1.abcdCompletedEventArgs e)
    {
       Xdocument doc = XDocument.Parse(e.Result);
    }

我的e.Result是

<root>1234</root>

如果我在模拟器中运行此代码,我得到结果但在设备中它会返回如下错误:

"Data at Root level is invalid"

如何解决这个问题。我被困在这里。谢谢!!

2 个答案:

答案 0 :(得分:0)

根级别的数据无效很可能意味着xml文件的结构无效。 请注意,每个xml文件必须以标题节点开头:

<?xml version="1.0"?>

如果您的xml文件没有此标头,则XDocument.Parse方法不会将此文件解析为xml。

此外,这是MSDN上的example。请参阅xml文件的外观。


现在,您的整个文件如下所示:

<root>1234</root>

这不是XML文件。 XML文件应如下所示:

 <?xml version="1.0" encoding="UTF-8"?>
 <root>1234</root>

然后您可以访问根值:

string root = doc.Descendants("root").FirstOrDefault().Value;

答案 1 :(得分:0)

如果您需要解析XML节点,则应使用XElement.Parse而不是XDocument.Parse

但您的情况是XML代码中的无效关闭代码,<root>节点尚未关闭,因为第二个<root>是下一个打开的代码,您应该将其更改为{{1} }

正确的XML是:</root>