這裏適用的條件三倍水平是我從百會CRM在XML和我需要的電子郵件,其中記錄的主要聯繫人的:如何在XPATH
<!--?xml version="1.0" encoding="UTF-8" ?-->
<response uri="/crm/private/xml/Contacts/getRelatedRecords">
<result>
<contacts>
<row no="1">
<fl val="CONTACTID">511618000000889989</fl>
<fl val="Email">
<!--[CDATA[[email protected]]]-->
</fl>
<fl val="Primary">
<!--[CDATA[true]]-->
</fl>
</row>
<row no="2">
<fl val="CONTACTID">511617845475451213</fl>
<fl val="Email">
<!--[CDATA[[email protected]]]-->
</fl>
<fl val="Primary">
<!--[CDATA[false]]-->
</fl>
</row>
</contacts>
</result>
</response>
在上面如果xpath表達式應該返回[email protected]作爲主要人員的電子郵件。
我開始寫作表達爲:
/response/result/contacts/row[./fl/@val='Primary' and ]/fl[@val='Email']/text()
,但不能讓過去書寫組合謂詞行元素的點。
另一個問題是命名空間。看起來像這個XML有一個命名空間。在這種情況下如何處理XPATH中的命名空間?
謝謝。但由於某些原因,它無法解析匹配函數。我是否需要提供某個特定的系統名稱空間,還是需要執行與特定級別的實現解析器實現相關的函數執行? – 2013-03-31 06:02:58
如果它不識別匹配(),這意味着您正在使用XPath 1.0。在這種情況下,用contains()替換matches()。 但您無法在位置步驟中使用任何功能,您將不得不在第二步中提取您的電子郵件值。 – 2013-04-02 07:08:08
你能否詳細說明你的意思是兩步?任何指針將不勝感激。 – 2013-04-02 14:23:51