从我的xml中,我可以得到这个:
<home>
<creditors>
<count>2</count>
</creditors>
</home>
甚至这个:
<home>
<creditors>
<moreThan>2</moreThan>
</creditors>
</home>
我可以使用哪个 xpath 表达式来获取"<count>2</count>"
而不是只获取"2"或获取"<moreThan>2</moreThan>"
而不是获取"2"?
这个XPath,
//creditors/count
将选择 XML 文档中所有creditors
元素的所有count
子元素。
根据 OP 的请求在注释中更新同时选择count
和moreThan
元素的单个 XPath:
这个XPath,
//creditors/*[self::count or self::moreThan]
将选择 XML 文档中所有creditors
元素的所有count
或moreThan
子元素。
假设你的 xpath 表达式没问题,你只需要将元素转换为字符串:
doc.xpath("home/creditors/*").to_s
=> "<count>2</count>"
请检查返回多个元素的查询,以确保它是所需的行为。