私はxmlとxsdを扱うのが初めてです。Guzzle を使用して Web サービス クライアントを作成しようとしています。
http://guzzlephp.org/index.html
このチュートリアルに従って、非常に基本的なクライアントと 1 つのコマンドを作成できました。
http://guzzlephp.org/tour/building_services.html
私が抱えている問題は、返された XML をより便利な形式に変換する方法です。私が使用している Web サービス (およびそのドキュメントと xsd) は、次の場所にあります。
http://www.epo.org/searching/free/ops.html
SimpleXMLElement を取得します。XML の次の内容を想定します。
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="/2.6.2/style/exchange.xsl"?>
<ops:world-patent-data xmlns:ops="http://ops.epo.org" xmlns="http://www.epo.org/exchange" xmlns:ccd="http://www.epo.org/ccd" xmlns:xlink="http://www.w3.org/1999/xlink">
<ops:meta name="elapsed-time" value="30"/>
<exchange-documents>
<exchange-document system="ops.epo.org" family-id="19768124" country="EP" doc-number="1000000" kind="A1">
<bibliographic-data>
<publication-reference>
<document-id document-id-type="docdb">
<country>EP</country>
<doc-number>1000000</doc-number>
<kind>A1</kind>
<date>20000517</date>
</document-id>
<document-id document-id-type="epodoc">
<doc-number>EP1000000</doc-number>
<date>20000517</date>
</document-id>
</publication-reference>
<!-- a lot of content snipped -->
</bibliographic-data>
</exchange-document>
</exchange-documents>
</ops:world-patent-data>
非常に単純な例として、doc-number (上記の XML の 11 行目) を抽出するにはどうすればよいですか?
私は試した:
$xpath = '/ops:world-patent-data/exchange-documents/exchange-document/bibliographic-data/publication-reference/document-id/doc-number';
$data = $result->xpath($xpath);
およびそのバリエーションですが、 $data は常に空の配列です。