java - XPath 返回一个元素但不返回另一个?
问题描述
我正在使用 Java 使用 XPath 提取值。我能够提取元素下的元素fields
,但records
不返回元素下的元素。
XML如下:
<?xml version="1.0" ?>
<qdbapi>
<action>****</action>
<errcode>0</errcode>
<errtext>No error</errtext>
<qid>****</qid>
<qname>****</qname>
<table>
<fields>
<field id="19" field_type="text" base_type="text">
</field>
</fields>
<records>
<record>
<f id="6">1</f>
</record>
</records>
</table>
</qdbapi>
下面的代码:
XMLDOMDocObj.selectNodes("//*[local-name()='fields']")//21 fields returned
XMLDOMDocObj.selectNodes("//*[local-name()='records']")//no records are returned
解决方案
XML 必须有一个根元素;你的有两个:fields
和records
。
将它们包装在一个共同的根中以获得您期望的结果。
此外,如果您的 XML 没有名称空间,则没有理由打败它们。代替
//*[local-name()='records']
利用
//records
也可以看看
推荐阅读
- django - 在 Django 创建 CBV 中修改外键查询集
- node.js - 从终端与节点守护进程对话
- api - 通过两个不同的唯一参数返回单个实体但不能同时返回的 RESTful 端点
- windows - 如何使用 DMClient\EnhancedAppLayerSecurity
- mysql - 由于 PermissionDeniedError,无法在 MySQL 中保存配置文件
- sql - 即使在创建索引期间启用子字符串索引后,使用 CTXCAT 索引进行子字符串搜索也不起作用
- node.js - NodeJS – Serialport Readline 问题
- python - 在 Python Pandas 中为 Dataframe 复制 H 查找功能
- typescript - 如何在 Outlook 插件中获取其他邮件(未选择)
- python - 有没有办法像 Pyspark 显示 Dataframes 一样打印 Pandas Dataframes?