这是我从 Zoho CRM 获得的 XML,我需要获取记录主要联系人的电子邮件:
<!--?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[person1@example.com]]-->
</fl>
<fl val="Primary">
<!--[CDATA[true]]-->
</fl>
</row>
<row no="2">
<fl val="CONTACTID">511617845475451213</fl>
<fl val="Email">
<!--[CDATA[person2@example.com]]-->
</fl>
<fl val="Primary">
<!--[CDATA[false]]-->
</fl>
</row>
</contacts>
</result>
</response>
在上述情况下,xpath 表达式应返回 person1@example.com 作为主要人员的电子邮件。
我开始将表达式写为:
/response/result/contacts/row[./fl/@val='Primary' and ]/fl[@val='Email']/text()
但无法超越为行元素编写组合谓词的点。
另一个问题是命名空间。似乎这个 XML 有一个命名空间。在这种情况下如何处理 XPATH 中的命名空间?