首页 > 解决方案 > VTD-XML 不返回正确的值,如何修改查询以获得正确的结果?

问题描述

我正在使用以下函数使用 VTD-XML 解析 xml:

final AutoPilot ap = new AutoPilot(vtdNav);
ap.selectXPath(path);
int i = -1;
/** evalXPath returns -1 if no new node is present */
while ((i =  ap.evalXPath()) != -1) {
     extractedValues.add(vtdNav.toString(i+1));
}
/** Reset the XPath */
ap.resetXPath();

但是当我尝试查询时:

<actualUnitCost>
  <chargeOrAllowance>CHARGE</chargeOrAllowance>
  <monetaryAmount currencyISOCode="USD">17.08</monetaryAmount>
</actualUnitCost>

使用路径:/actualUnitCost/monetaryAmount 它给了我作为 currencyISOCode 而不是 17.08 的值。如何修改查询以获得所需的结果?

我试过 /actualUnitCost/monetaryAmount/text() 但它没有产生正确的答案。

标签: xmlxpathvtd-xml

解决方案


我认为这是正确的行为。如果您尝试 /actualUnitCost/monetaryAmount/text(),它将为您提供文本节点。

让我知道是否有任何问题。


推荐阅读