maven の pom.xml に対して xmllint の xpath で要素を拾うことができない


以下のような `dummy-pom.xml` ファイルを用意しました。

[code]

    <?xml version="1.0"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
      <modelVersion>4.0.0</modelVersion>
      <groupId>dummy</groupId>
      <version>0.0.1-SNAPSHOT</version>
      <artifactId>dummy-pom</artifactId>
      <packaging>pom</packaging>
    </project>
    
[/code]

この状態から、 xmllint で、 xpath によって要素を取得しようとしたのですが、正しく動作してくれません。

[code]

    $ xmllint --xpath '/project' dummy-pom.xml
    XPath set is empty
    
[/code]

これは、xpath の指定が間違っているのだと考えられますが、どう間違っているのかがわからずにいます。

### 質問:

上記ファイルに対して xpath で要素を取得できないのはなぜでしょうか？




既定の`xmlns`が指定されているので名前空間を指定しない`project`ではマッチしないと思われます。ローカル名で

[code]

    /*[local-name()='project']
    
[/code]

と判定するか、XMLに`xmlns:hoge="http://maven.apache.org/POM/4.0.0"`のようにプレフィックスを定義してから`/hoge:project`とテストすべきではないでしょうか。




既定の`xmlns`が指定されているので名前空間を指定しない`project`ではマッチしないと思われます。ローカル名で

[code]

    /*[local-name()='project']
    
[/code]

と判定するか、XMLに`xmlns:hoge="http://maven.apache.org/POM/4.0.0"`のようにプレフィックスを定義してから`/hoge:project`とテストすべきではないでしょうか。

