获取xmlnode值

时间:2014-05-26 10:41:18

标签: xml xpath xmlnode xmlnodelist

我下面有一个xml 首先,我将选择一个SelectNode。然后我想在两个选定的节点上做一个foreach,然后分别为每个节点选择。

    <Root>
    <persons>
     <Number>2525</Number>
     <Number>2626</Number>
      <persons>
        <Number>2828</Number>
        <Number>2929</Number>
      </persons>
    </persons>
    </Root>

第一次运行foreach时,我使用Xpath =

获取Arpit和Tushar的Age和Name
XmlNodeList outcomelist = each.SelectNodes(".//*[local-name()='persons']/*[local-name()='Number']");

“each”是当前节点。

请帮助正确编写xpath,以便我只能获取当前节点的值并排除子节点。

请注意,这个xml仅用于示例目的。真正的xml非常庞大且难以解析。

1 个答案:

答案 0 :(得分:0)

我认为您需要花些时间熟悉XPath,因为您正在使用“{1}}和//等”工作原理“,这会让您遇到麻烦。

要选择顶级*[local-name() = '...'],此XPath应该有效:

persons

如果您的XML使用名称空间,那么可以执行此操作以选择名称:

XmlNodeList persons = each.SelectNodes("/Root/persons/Number");

但正如我在上面提到的,这是一个黑客攻击,在这种情况下你应该真正做的是正确处理名称空间。