C#的XDocument需要被解析到XML再次
问题描述:
我已经被填充为的XDocument如下:C#的XDocument需要被解析到XML再次
XDocument xDoc = XDocument.Parse(new StreamReader(response.GetResponseStream()).ReadToEnd());
这让我看起来如下一个XDocument:
<GetReportAsXMLString>
<report>
<reportItem Count ="562..................
</GetReportAsXMLStringResult>
标签之间的任何都只是一个巨大的字符串(黑色)。我如何将这部分文档格式化为XML?标签也是字符串的一部分。我只是不知道如何让它显示为不是XML。
感谢
答
很难从你的描述说,但它看起来像你需要先解析响应流(有效的XML),其中包含另一个XML文档(字符串)。你需要从“外”的XML文档提取字符串并解析成一个新问题:
伪代码:
XDocument outer = response.GetResponseStream();
String innerXml = outer.Element("report").Value;
XDocument inner = XDocument.Parse(innerXml);
答
你有这样的XML内容:
<GetReportAsXMLString>
<report>
<reportItem Count =\"562\"/>
<reportItem Count =\"562\"/>
</report>
</GetReportAsXMLString>
和你想只提取“reportItem”节点?
如果是这样,你可以这样做:
string xml = "<GetReportAsXMLString><report><reportItem Count =\"562\"/><reportItem Count =\"562\"/></report></GetReportAsXMLString>";
XDocument xDoc = XDocument.Parse(xml);
IEnumerable<XElement> elList = xDoc.Descendants().Where(x => x.Name.LocalName.Equals("report")).Descendants().Where(x => x.Name.LocalName.Equals("reportItem"));
以及*是*有效的XML? – BrokenGlass 2011-03-15 13:45:08
我们需要更多关于元素下的内容的信息... –
MattDavey
2011-03-15 13:50:08
是的...在和 之间是所有XML,它只是格式化为一个字符串。我想要做的是说IEnumerable elements = xDoc.Element(“ReportItem”);获取Report Item下的元素,但它不会将其识别为XML –
user380432
2011-03-15 13:59:02