Java 如何使用XPATH从XML中检索特定元素的子元素?
我有以下XML文档:Java 如何使用XPATH从XML中检索特定元素的子元素?,java,xml,xpath,Java,Xml,Xpath,我有以下XML文档: <resultset> <table> <name>RESULTS</name> <data> <row> <field name="TradeId" type="xs:integer">1185652601</field> <field name="TradeVersion" type="xs
<resultset>
<table>
<name>RESULTS</name>
<data>
<row>
<field name="TradeId" type="xs:integer">1185652601</field>
<field name="TradeVersion" type="xs:integer">1</field>
<field name="TradeDate" type="xs:date">20190807000000</field>
<field name="tradeLastUpdatedTimestamp" type="xs:dateTime">2019-08-07 18:16:20.475078+01:00</field>
</row>
</data>
</table>
<table>
<name>CustomCalcPeriod</name>
<data>
<row>
<field name="CouponSchPayDateAdj" type="xs:date">20160920000000</field>
<field name="CouponSchCouponAmount" type="xs:double"/>
<field name="CouponSchRate" type="xs:double">5</field>
</row>
</data>
</table>
<table>
<name>CustomNotionalStep</name>
<data>
<row>
<field name="AnnuitySchNotional" type="xs:double">10000000</field>
<field name="NotionalSchStartDateAdj" type="xs:date">20160620000000</field>
<field name="NotionalSchStartDateUnadjusted" type="xs:date">20160620000000</field>
</row>
</data>
</table>
我是否可以扩展这个表达式,使其返回只属于父表的“行”元素的节点列表,而不返回其余元素
//table[name/text() = 'RESULTS']/data/row
这两个XPath表达式都应该提供以下输出(我认为这是您想要的)
Element=”
1185652601
1.
20190807000000
2019-08-07 18:16:20.475078+01:00
'
我不确定最终输出应该是什么,但是这个表达式:
//table//row
应为每个
选择3个组,因为xml中没有自定义周期。
//row[../../name/text() = 'RESULTS']
Element='<row>
<field name="TradeId" type="xs:integer">1185652601</field>
<field name="TradeVersion" type="xs:integer">1</field>
<field name="TradeDate" type="xs:date">20190807000000</field>
<field name="tradeLastUpdatedTimestamp" type="xs:dateTime">2019-08-07 18:16:20.475078+01:00</field>
</row>'
//table//row