マージする必要がある 2 つのドキュメントがありますが、他の例ではカバーされていないようです。つまり、ノードの値を取得するには、あるレベルのノードの属性だけでなく、その下のノード レベルの属性の値にも一致する必要があります。
私はこのサンプルを取ろうとしています:
<?xml version="1.0" encoding="UTF-8" ?>
<marc:collection xmlns:marc="http://www.loc.gov/MARC21/slim"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<marc:record>
<marc:datafield tag="035" ind1=" " ind2=" ">
<marc:subfield code="a">12345</marc:subfield>
</marc:datafield>
<marc:datafield tag="041" ind1=" " ind2=" ">
<marc:subfield code="a">eng</marc:subfield>
</marc:datafield>
<marc:datafield tag="650" ind1=" " ind2="4">
<marc:subfield code="a">Art</marc:subfield>
</marc:datafield>
<marc:datafield tag="949" ind1=" " ind2=" ">
<marc:subfield code="i">Review of conference proceedings</marc:subfield>
</marc:datafield>
</marc:record>
<marc:record>
<marc:datafield tag="035" ind1=" " ind2=" ">
<marc:subfield code="a">54321</marc:subfield>
</marc:datafield>
<marc:datafield tag="041" ind1=" " ind2=" ">
<marc:subfield code="a">eng</marc:subfield>
</marc:datafield>
<marc:datafield tag="650" ind1=" " ind2="4">
<marc:subfield code="a">Byzantine</marc:subfield>
</marc:datafield>
</marc:record>
</marc:collection>
また、「データフィールド」「035」、「サブフィールド」「a」の値が一致する場合、たとえば「12345」
<marc:collection xmlns:marc="http://www.loc.gov/MARC21/slim"
xmlns:fn="http://www.w3.org/2005/xpath-functions" xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:fo="http://www.w3.org/1999/XSL/Format">
<marc:record>
<marc:datafield ind2=" " ind1=" " tag="035">
<marc:subfield code="a">12345</marc:subfield>
</marc:datafield>
<marc:datafield ind2="4" ind1=" " tag="650">
<marc:subfield code="a">General works</marc:subfield>
<marc:subfield code="x">Historians and critics</marc:subfield>
<marc:subfield code="x">Smith, John, 1834-1917</marc:subfield>
</marc:datafield>
<marc:datafield ind2="4" ind1=" " tag="650">
<marc:subfield code="a">Généralités</marc:subfield>
<marc:subfield code="x">Historiens et critiques d'art</marc:subfield>
<marc:subfield code="x">Dietrichson, Lorentz, 1834-1917</marc:subfield>
</marc:datafield>
<marc:datafield ind2=" " ind1=" " tag="654">
<marc:subfield code="a">General works</marc:subfield>
</marc:datafield>
<marc:datafield ind2=" " ind1=" " tag="654">
<marc:subfield code="a">Généralités</marc:subfield>
<marc:subfield code="b">Historiens et critiques d'art</marc:subfield>
<marc:subfield code="b">Smith, John, 1834-1917</marc:subfield>
</marc:datafield>
</marc:record>
<marc:record>
<marc:datafield ind2=" " ind1=" " tag="035">
<marc:subfield code="a">54321</marc:subfield>
</marc:datafield>
<marc:datafield ind2="4" ind1=" " tag="650">
<marc:subfield code="a">General works</marc:subfield>
<marc:subfield code="x">Historians and critics</marc:subfield>
<marc:subfield code="x">Lange, Julius Henrik, 1838-1896</marc:subfield>
</marc:datafield>
</marc:record>
</marc:collection>
結果は次のようになります。
<?xml version="1.0" encoding="UTF-8" ?>
<marc:collection xmlns:marc="http://www.loc.gov/MARC21/slim"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<marc:record>
<marc:datafield tag="035" ind1=" " ind2=" ">
<marc:subfield code="a">12345</marc:subfield>
</marc:datafield>
<marc:datafield tag="041" ind1=" " ind2=" ">
<marc:subfield code="a">eng</marc:subfield>
</marc:datafield>
<marc:datafield tag="650" ind1=" " ind2="4">
<marc:subfield code="a">Art</marc:subfield>
</marc:datafield>
<marc:datafield ind2="4" ind1=" " tag="650">
<marc:subfield code="a">General works</marc:subfield>
<marc:subfield code="x">Historians and critics</marc:subfield>
<marc:subfield code="x">Smith, John, 1834-1917</marc:subfield>
</marc:datafield>
<marc:datafield ind2="4" ind1=" " tag="650">
<marc:subfield code="a">Généralités</marc:subfield>
<marc:subfield code="x">Historiens et critiques d'art</marc:subfield>
<marc:subfield code="x">Dietrichson, Lorentz, 1834-1917</marc:subfield>
</marc:datafield>
<marc:datafield ind2=" " ind1=" " tag="654">
<marc:subfield code="a">General works</marc:subfield>
</marc:datafield>
<marc:datafield ind2=" " ind1=" " tag="654">
<marc:subfield code="a">Généralités</marc:subfield>
<marc:subfield code="b">Historiens et critiques d'art</marc:subfield>
<marc:subfield code="b">Smith, John, 1834-1917</marc:subfield>
</marc:datafield>
<marc:datafield tag="949" ind1=" " ind2=" ">
<marc:subfield code="i">Review of conference proceedings</marc:subfield>
</marc:datafield>
</marc:record>
<marc:record>
<marc:datafield tag="035" ind1=" " ind2=" ">
<marc:subfield code="a">54321</marc:subfield>
</marc:datafield>
<marc:datafield tag="041" ind1=" " ind2=" ">
<marc:subfield code="a">eng</marc:subfield>
</marc:datafield>
<marc:datafield tag="650" ind1=" " ind2="4">
<marc:subfield code="a">Byzantine</marc:subfield>
</marc:datafield>
<marc:datafield ind2="4" ind1=" " tag="650">
<marc:subfield code="a">General works</marc:subfield>
<marc:subfield code="x">Historians and critics</marc:subfield>
<marc:subfield code="x">Lange, Julius Henrik, 1838-1896</marc:subfield>
</marc:datafield>
</marc:record>
</marc:collection>
検索を行った例を使用してみましたが、どれもうまくいかないようでした。すべての結果が悲惨だったので、XSL を含めませんでした。シンプルに違いないと思って見続けていますが、まともな結果が得られていません。どんな助けや指針も大歓迎です。
ありがとう!