XMLネームスペースの問題
このセクションでは、ネームスペースが含まれているXMLドキュメントでXPath式を使用する場合に発生しうる問題について説明します。
ネームスペースの詳細は、XML namespaceとNamespaces in XMLをご覧ください。
説明
現在のところ、XPath式はXMLドキュメントにネームスペースがない時に期待どおりに動作します。ただし、(デフォルトのものも含めて)ネームスペースが含まれているドキュメントでは、XPath式が予期しない結果を返すことがあります。
たとえば以下のXMLドキュメントの場合、/a、//c、//c/@nameという式はどれも空の配列を返します:
<a xmlns="http://www.w3.org/2000/example">
<b>
<c name="name1"/>
</b>
</a>
対処方法
この問題を回避するためには、ネームスペースを無視してタグを取得するXPath式を使用します。上の例では、/*[name()='a']、//*[name()='c']、//*[name()='c']/@nameを使用できます。