C#XDocument需要再次解析为XML

C#XDocument需要再次解析为XML,c#,xml,C#,Xml,我有一个Xdocument,其填充方式如下: XDocument xDoc = XDocument.Parse(new StreamReader(response.GetResponseStream()).ReadToEnd()); <GetReportAsXMLString> <report> <reportItem Count ="562.................. </GetReportAsXMLStringResul

我有一个Xdocument,其填充方式如下:

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