假設我有XML介紹如下:如何使用XPath軸我寫一個名字空間無關的XPath查詢
<ns1:test xmlns:ns1="http://www.w3.org/TR/html3/" xmlns:UML="http://www.w3.org/TR/html4/">
<UML:Class name="test1">
<UML:ModelElement.stereotype>
<UML:Stereotype name="AFV"/>
</UML:ModelElement.stereotype>
</UML:Class>
<UML:Class name="test2" >
<UML:ModelElement.stereotype>
<UML:Stereotype name="AFV"/>
</UML:ModelElement.stereotype>
</UML:Class>
<UML:Class name="test3" >
<UML:ModelElement.stereotype>
<UML:Stereotype name="RCS"/>
</UML:ModelElement.stereotype>
</UML:Class>
<UML:Class name="test4" >
<UML:ModelElement.stereotype>
<UML:Stereotype name="DFK"/>
</UML:ModelElement.stereotype>
</UML:Class>
<UML:Class name="test5" >
<UML:ModelElement.stereotype>
<UML:Stereotype name="DSO"/>
</UML:ModelElement.stereotype>
</UML:Class>
</ns1:test>
我如何寫一個名字空間無關的XPath查詢將獲得包含所有的「類」元素屬性名稱等於「AFV」的「Stereotype」元素?
如果沒有發現任何的命名空間,我會使用所謂XPath軸,和我的查詢將是這個樣子的: //Class[descendant::Stereotype[@name='AFV']]
XPath查詢應該返回:
<UML:Class name="test1">
<UML:ModelElement.stereotype>
<UML:Stereotype name="AFV"/>
</UML:ModelElement.stereotype>
</UML:Class>
<UML:Class name="test2" >
<UML:ModelElement.stereotype>
<UML:Stereotype name="AFV"/>
</UML:ModelElement.stereotype>
</UML:Class>