# XMLネームスペースの問題

このセクションでは、ネームスペースが含まれているXMLドキュメントでXPath式を使用する場合に発生しうる問題について説明します。 ネームスペースの詳細は、[XML namespace](https://en.wikipedia.org/wiki/XML_namespace)と[Namespaces in XML](https://www.w3.org/TR/2006/REC-xml-names11-20060816/)をご覧ください。

## 説明

現在のところ、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を使用できます。