xml - 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() 但它没有产生正确的答案。
解决方案
我认为这是正确的行为。如果您尝试 /actualUnitCost/monetaryAmount/text(),它将为您提供文本节点。
让我知道是否有任何问题。
推荐阅读
- c# - C# 中的身份转换到底是什么?
- javascript - 当用户点击重新加载按钮时如何在 JS 中运行函数
- javascript - 在特定元素的某个点将垂直滚动更改为水平滚动
- css - 如何使用 React Native 实现这样的目标
- javascript - 关于访问变量的函数,这是真的吗?
- javascript - D3.js - 为拖动事件设置最小和最大范围
- python - 从烧瓶应用程序运行破折号请求会出现 404 错误,而其他烧瓶路由运行良好
- liquibase - liquibase 从表中加载数据
- google-apps-script - 您能否通过升级到 G Suite 商务版将应用脚本执行时间增加到 30 分钟?
- jpa - JPA 级联持久性与枚举的 ElementCollection