首页 > 解决方案 > 包含函数返回具有所有子字符串的节点。我怎样才能避免这种情况

问题描述

我正在使用 './/*[contains(local-name(), "revenue")]' 检索所有节点与所有变体(大写、小写和混合)完全匹配的 "revenue" 标记,而不是具有“收入”作为子字符串的节点。

从下面的 xml 数据。我只想检索“revenue”和“Revenue”标签,而不是“interestRevenue”、“transactionrevenue”、“revenueOtherServices”标签

<financial_statement>
  <revenue>123</revenue>
  <Revenue>456</Revenue>
  <interestRevenue>234</interestRevenue>
  <salaries>12</salaries>
  <transactionrevenue>345</transactionrevenue>
  <revenueOtherServices>109</revenueOtherServices>
  <sales>783</sales>
  <costs>746</costs>
  .....
</financial_statement>

有什么办法吗?

提前致谢。

标签: xmlxpath

解决方案


像这样( 2.0):

/financial_statement/*[lower-case(name()) = "revenue"]

对于 xpath 1:

/financial_statement/*[translate(name(), "ABCDEFGHIJKLMNOPQRSTUVWXYZ", "abcdefghijklmnopqrstuvwxyz") = "revenue"]

推荐阅读