获取标记的子元素的Xpath表达式(nokogiri)?

时间:2018-03-13 14:26:05

标签: ruby xml xpath nokogiri

从我的xml中,我可以得到这个:

<home>
    <creditors>
          <count>2</count>
    </creditors>
</home>

或者甚至是这样:

<home>
    <creditors>
          <moreThan>2</moreThan>
    </creditors>
</home>

我可以使用哪个xpath表达式获取"<count>2</count>"而不是仅获取&#34; 2&#34;或者获取"<moreThan>2</moreThan>"而不是获得&#34; 2&#34; ?

2 个答案:

答案 0 :(得分:1)

这个XPath,

//creditors/count

将选择XML文档中所有count元素的所有creditors子元素。

在针对选择countmoreThan元素的单个XPath的评论中更新每个OP的请求:

这个XPath,

//creditors/*[self::count or self::moreThan]

将选择XML文档中所有count元素的所有moreThancreditors子元素。

答案 1 :(得分:0)

假设您的xpath表达式正常,您只需将元素转换为字符串:

doc.xpath("home/creditors/*").to_s => "<count>2</count>"

请检查返回多个元素的查询,以确保其符合预期的行为。