C# 如何从xml字符串C中提取节点#
我有下面提到的am xml字符串: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&
<?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; ?