2013-07-09 78 views
1

我有一個定義複雜類型的XSD(說「FooType」),和幾個這種類型的命名實例分散在同一XSD,如:如何使用xpath查找特定類型的所有xml元素?

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

當從XSD導出XML文件的工作,我想查找類型爲「tns:FooType」的所有元素節點。我認爲使用帶有元素(*,「FooType)方法的XPath是可能的,但是我找不到任何這樣的例子,所以不知道語法是什麼樣子。我希望將它用於Java 。DOM4J的selectNodes()方法

回答

1

您需要一個XPath 2.0實現DOM4J爲1.0只,所以是javax.xml.xpath的撒克遜人提供了2.0,但我相信這個特定的。能力不是開源版本的一部分

0

試試這個:

List list = document.selectNodes("/sequence/element[@type='tns:FooType']"); 
+0

我認爲你的建議可以從XSD中選擇。我需要從XSD派生的XML中選擇一些內容。 –

0

如果你不知道前綴,你可以在名稱上使用substring-before()並檢查是否有結果:

/sequence/element[substring-before(@type,":FooType")] 
相關問題