我遇到了麻烦,形成了正确的xpath表达式来查找xml中的数据,类似于以下内容:
<record>
<datafield tag="675" ind1=" " ind2=" ">
<subfield code="a">791.221.4(71+44+469+450)(086.82)</subfield>
<subfield code="c">791.2</subfield>
<subfield code="s">791.2</subfield>
<subfield code="b">791.2</subfield>
<subfield code="v">UDCMRF 2006</subfield>
</datafield>
<datafield tag="702" ind1="1" ind2="1">
<subfield code="3">39609187</subfield>
<subfield code="a">Cronenberg</subfield>
<subfield code="b">David</subfield>
<subfield code="f">1943-</subfield>
<subfield code="4">300</subfield>
<subfield code="4">690</subfield>
</datafield>
<datafield tag="702" ind1="0" ind2="1">
<subfield code="3">16448611</subfield>
<subfield code="a">Suschitzky</subfield>
<subfield code="b">Peter</subfield>
<subfield code="4">600</subfield>
</datafield>
<datafield tag="702" ind1="0" ind2="1">
<subfield code="3">8497763</subfield>
<subfield code="a">Shore</subfield>
<subfield code="b">Howard</subfield>
<subfield code="4">230</subfield>
</datafield>
</record>
如何构建一个基本上表示的表达式:搜索标签值为702的数据字段,并在代码为4的子字段中返回值为300的人姓和姓名 - 这样在这种情况下答案是Cronenberg David?
提前致谢。
答案 0 :(得分:1)
datafield[@tag="702"][./subfield[@code="4" and .="300"]]
将选择所需的数据字段元素。
datafield[@tag="702"][./subfield[@code="4" and .="300"]]/subfield[@code="a" or @code="b"]/text()
假设子字段在文档
中以该顺序出现,将返回['Cronenberg', 'David']
答案 1 :(得分:1)
使用强>:
/*/*[@tag=702 and subfield[@code=4]=300]
/subfield[@code='a' or @code='b']/text()