问题描述
我有一个用于提取元素的xml-
<?xml version="1.0"?>
<Carmodels>
<Cars>
<id>1223</id>
<cartype>Sedan</cartype>
<price>1000</price>
</Cars>
<Cars>
<id>1234</id>
<car>Sports</car>
<price>2500</price>
</Cars>
<Cars>
<id>1123</id>
<car>Taxi</car>
<price>9000</price>
</Cars>
<Cars>
<id>1223</id>
<car>Taxi</car>
<price>1000</price>
</Cars>
</Carmodels>
现在,我需要从<price>
= Taxi的<cars>
节点提取<car>
标签。我只需要 Xpath 即可提取价格。
样本输出:
9000
1000
我们只需要Xpath即可通过Java执行。
解决方法
请尝试以下XPath表达式。它将 car 标签值转换为小写。因此,出租车和出租车都被考虑在内。
XPath
/Carmodels/Cars[lower-case(car)="taxi"]/price
,
XPath 1.0表达式支持用小写或大写字符写的计程车单词:
//Cars[car[translate(.,"tT","tt")="taxi"]]/price
//car[translate(.,"tt")="taxi"]/following-sibling::price
输出:2个节点
<price>9000</price>
<price>1000</price>