JAXBとMOXyを使用してKMLファイルを解析するスクリプトを作成していますが、提供された名前空間で@XmlPathを機能させるのに問題があります。
KMLが次のようになっている場合:-
<kml>
<Document>
<name>Test</name>
</Document>
</kml>
...そして私の豆はこのように見えます:-
@XmlRootElement(name = "kml")
public class Kml {
@XmlPath("Document/name/text()")
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
...次に、をkml.getName()
返します。これは正常Test
に機能します。
ただし、KMLに次のような名前空間が含まれている場合:-
<kml xmlns="http://www.opengis.net/kml/2.2">
<Document>
<name>Test</name>
</Document>
</kml>
...そして私の豆はこのように見えます:-
@XmlRootElement(name = "kml", namespace = "http://www.opengis.net/kml/2.2")
public class Kml {
@XmlPath("Document/name/text()")
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
...次に、をkml.getName()
返しますnull
。
私はjaxb.properties
適切なパッケージレベルを持っており、次のMOXyの依存関係を使用しています:-
<dependency>
<groupId>org.eclipse.persistence</groupId>
<artifactId>org.eclipse.persistence.moxy</artifactId>
<version>2.3.2</version>
</dependency>
私はここで何が欠けていますか?ありがとう。