C#XDocument需要再次解析为XML
我有一个Xdocument,其填充方式如下:C#XDocument需要再次解析为XML,c#,xml,C#,Xml,我有一个Xdocument,其填充方式如下: XDocument xDoc = XDocument.Parse(new StreamReader(response.GetResponseStream()).ReadToEnd()); <GetReportAsXMLString> <report> <reportItem Count ="562.................. </GetReportAsXMLStringResul
XDocument xDoc = XDocument.Parse(new StreamReader(response.GetResponseStream()).ReadToEnd());
<GetReportAsXMLString>
<report>
<reportItem Count ="562..................
</GetReportAsXMLStringResult>
这给了我一个XDocument,如下所示:
XDocument xDoc = XDocument.Parse(new StreamReader(response.GetResponseStream()).ReadToEnd());
<GetReportAsXMLString>
<report>
<reportItem Count ="562..................
</GetReportAsXMLStringResult>
从您的描述很难说,但看起来您需要首先解析响应流(有效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"));
stringxml=”“;
XDocument xDoc=XDocument.Parse(xml);
IEnumerable elList=xDoc.subjects()。其中(x=>x.Name.LocalName.Equals(“报告”)).subjects()。其中(x=>x.Name.LocalName.Equals(“报告项”);
我们需要更多关于元素下内容的信息……是的……在和之间都是XML,它只是格式化为字符串。我想说的是IEnumerable elements=xDoc.Element(“ReportItem”);获取报表项下的元素,但它无法将其识别为XML