C# XML从nextNode获取值
我正在尝试从选定节点之后的节点获取值。到目前为止,我已经能够以var的形式获取整个节点的信息,但是我仍然停留在如何只获取值的问题上 我的xml看起来是这样的C# XML从nextNode获取值,c#,xml-parsing,C#,Xml Parsing,我正在尝试从选定节点之后的节点获取值。到目前为止,我已经能够以var的形式获取整个节点的信息,但是我仍然停留在如何只获取值的问题上 我的xml看起来是这样的 <COLUMN> <NAME>Addr1</NAME> <VALUE>1234 my street</VALUE> </COLUMN> 谢谢试试: (address as XElement).Value 尝试: NextNode返回一个XNode,而您需要一个XEl
<COLUMN>
<NAME>Addr1</NAME>
<VALUE>1234 my street</VALUE>
</COLUMN>
谢谢试试:
(address as XElement).Value
尝试:
NextNode
返回一个XNode
,而您需要一个XElement
:
var address = (from c in doc.Descendants("NAME")
where c.Value == "Addr1"
select c.NextNode).OfType<XElement>().Single().Value;
NextNode
返回一个XNode
,而您需要一个XElement
:
var address = (from c in doc.Descendants("NAME")
where c.Value == "Addr1"
select c.NextNode).OfType<XElement>().Single().Value;
您应该选择
列
元素,而不是搜索名称
元素:
var address = (from c in contactInfo.Descendants("COLUMN")
where (string)c.Element("NAME") == "Addr1"
select (string)c.Element("VALUE")).Single();
与方法语法相同:
var address = contactInfo.Descendants("COLUMN")
.Where(c => (string)c.Element("NAME") == "Addr1")
.Select(c => (string)c.Element("VALUE"))
.Single();
另外,您应该完全确保始终存在一个名为
Addr1
的列元素。否则,Single()
将引发异常。您应该选择列
元素,而不是搜索名称
元素:
var address = (from c in contactInfo.Descendants("COLUMN")
where (string)c.Element("NAME") == "Addr1"
select (string)c.Element("VALUE")).Single();
与方法语法相同:
var address = contactInfo.Descendants("COLUMN")
.Where(c => (string)c.Element("NAME") == "Addr1")
.Select(c => (string)c.Element("VALUE"))
.Single();
另外,您应该完全确保始终存在一个名为Addr1
的列元素。否则,Single()
将引发异常