1

次のように、complexType (「FooType」など) を定義する XSD と、同じ XSD 全体に散在するこの型の名前付きインスタンスがいくつかあります。

<sequence>
    <element name="A" type="tns:FooType"/>
    <element name="B" type="tns:FooType"/>
</sequence>

XSD から派生した XML ファイルを操作する場合、「tns:FooType」タイプの要素ノードをすべて検索したいと考えています。element(*, "FooType) メソッドで XPath を使用するとこれが可能だと思いますが、この例が見つからないため、構文がどのようになるかわかりません。これを Java で使用したいと考えています。 dom4j selectNodes() メソッド。

4

3 に答える 3

1

XPath 2.0 の実装が必要です。DOM4J は 1.0 のみであり、javax.xml.xpath も同様です。Saxon は 2.0 を提供していますが、この特定の機能はオープン ソース版には含まれていないと思います。

于 2013-07-09T09:35:49.697 に答える
0

これを試して:

List list = document.selectNodes( "/sequence/element[@type='tns:FooType']" );
于 2013-07-09T07:08:36.583 に答える
0

substring-before()名前に使用できるプレフィックスがわからない場合は、結果があるかどうかを確認します。

/sequence/element[substring-before(@type,":FooType")]
于 2013-07-09T12:45:37.830 に答える