1

次のような xml 内のデータを見つけるための適切な xpath 式の作成に問題があります。

<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 になりますか?

前もって感謝します。

4

2 に答える 2

1

使用

/*/*[@tag=702 and subfield[@code=4]=300]
         /subfield[@code='a' or @code='b']/text()
于 2013-03-22T15:25:31.883 に答える
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']サブフィールドがドキュメント内でその順序で表示されると仮定して返されます

于 2013-03-22T14:44:21.690 に答える