0
我是XPathExpression上工作很新,我想建立一個表達式來檢索屬性值到我的自定義Java對象,即消息。下面是虛擬XML,其中將有許多消息節點。XPathExpression來選擇子屬性值忽略名稱空間
我的Java代碼應讀取此XML,並相應地爲消息創建一個Java對象列表。
這是基於我試圖建立一個XpathExpression的條件。
- 在此XPath jobReport /記錄/記錄/消息檢查,如果冠軍具有價值TestCompany。如果有其他公司的消息應該跳過
我正在使用下面的Xpath表達式,但由於名稱空間數據而無法返回數據。現在我需要使用表達式跳過這些名稱空間,並獲得標題的值。
- jobReport /記錄/記錄/消息/ * [本地名稱()= 'AA:標題']
- jobReport /記錄/記錄/消息/ * [本地名稱()= 'AA:標題'/文本()= 'TestCompany']
- // * [本地名稱()= 'AA:標題'/文本()= 'TestCompany']
j
<?xml version="1.0" encoding="UTF-8"?>
<jobReport>
<jobID>123515412512221</jobID>
<rundate>2016-09-16</rundate>
<startTime>13:09:49</startTime>
<endTime>13:10:39</endTime>
<containsErrors>false</containsErrors>
<records>
<record>
<recordid>20160920001</recordid>
<primaryfilename>hello.pdf</primaryfilename>
<result>
<status>OK</status>
<errorcode />
</result>
<messages>
<aa:title xmlns="http://www.somedomain.com/example/test/xml/"
xmlns:aa="DummyProject/2016-04">TestCompany</aa:title>
<aa:messageid xmlns="http://www.somedomain.com/example/test/xml/"
xmlns:aa="OP360CustomerArchive/2016-04">30.02.02.15.01</aa:messageid>
<aa:messagefrom xmlns="http://www.somedomain.com/example/test/xml/"
xmlns:aa="OP360CustomerArchive/2016-04">FI</aa:messagefrom>
<aa:messageto
xmlns="http://www.op.fi/hallintapalvelut/dokumenttirajapinta/xml/"
xmlns:aa="OP360CustomerArchive/2016-04">keijo</aa:messageto>
<aa:mailid
xmlns="http://www.op.fi/hallintapalvelut/dokumenttirajapinta/xml/"
xmlns:aa="OP360CustomerArchive/2016-04">agreement</aa:mailid>
<aa:phonenumber
xmlns="http://www.op.fi/hallintapalvelut/dokumenttirajapinta/xml/"
xmlns:aa="OP360CustomerArchive/2016-04">xml-tuote</aa:phonenumber>
</messages>
</record>
</records>
</jobReport>
謝謝。但是這並不能給我我想要的東西。我嘗試使用下面的表達式,但只給我的命名空間,而不是值,即** TestCompany ** ** jobReport/records/record/messages/* [local-name()='alertmethod'] ** –
哎呀,這是一個錯字,更正表達式 **/jobReport/records/record/messages/* [local-name()='title'] ** –
**仔細檢查:**'''/ jobReport /記錄/記錄/消息/ * [本地名稱()='標題']'[***確實選擇'aa:title'如下所示***](http://www.xpathtester.com/xpath/ 3b8b3385d6efdc4ec48cc0bdac83468e)。 – kjhughes