C# XML从nextNode获取值

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

我正在尝试从选定节点之后的节点获取值。到目前为止,我已经能够以var的形式获取整个节点的信息,但是我仍然停留在如何只获取值的问题上

我的xml看起来是这样的

<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()
将引发异常