C# 如何从xml字符串C中提取节点#

C# 如何从xml字符串C中提取节点#,c#,xml,C#,Xml,我有下面提到的am xml字符串: <?xml version="1.0" encoding="utf-8" ?> <NodeA xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.air-watch.com/webapi/resources"> <AdditionalInfo&

我有下面提到的am xml字符串:

<?xml version="1.0" encoding="utf-8" ?>
<NodeA xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.air-watch.com/webapi/resources">
    <AdditionalInfo>
        <Links>
            <Link xsi:type="link">
            </Link>
        </Links>
    </AdditionalInfo>
    <TotalResults>100</TotalResults>
    <NodeB>
        <NodeC>
            <Id>1</Id>
            <A>valueA</A>
            <B>valueB</B>
        </NodeC>
        <NodeC>
            <Id>2</Id>
            <A>valueA</A>
            <B>valueA</B>
        </NodeC>
   </NodeB>
</NodeA>

有没有一种方法可以不必在文档中加载它?对字符串对象本身的一些操作。

为什么不能使用此选项

XDocument doc=XDocument.Parse(xmlstr);
String response=doc.Elements("question")
                   .Where(x=>x.Attribute("id")==id)
                   .Single()
                   .Element("response")
                   .Value; ?

您可以使用正则表达式。

为什么要避免使用
XDocument
?对字符串的操作不是基于XML的。您需要一个XMLAPI。LINQtoXML是一个非常好的XMLAPI.xdocument或string,您仍然可以将整个内容存储在内存中。为什么会有这样的限制?嗯,如果避免加载到XDocument对内存或性能没有任何影响,我想我会继续这样做。我仍然无法获得我感兴趣的节点。你能把最后的Linq发布到XML吗?
XDocument doc=XDocument.Parse(xmlstr);
String response=doc.Elements("question")
                   .Where(x=>x.Attribute("id")==id)
                   .Single()
                   .Element("response")
                   .Value; ?