由於可用的XPath引擎實現的性質,給定多個XPath表達式以及我嘗試過的所有事情都失敗,所以我正在尋找一種可將XML文件壓縮成表的通用算法。使用多個XPath表達式平展XML
給定一個XML:
<A Name="NameA">
<B Name="NameB1">
<C Name="NameC1"/>
<C Name="NameC2"/>
<C Name="NameC3"/>
</B>
<B Name="NameB2">
<C Name="NameC4"/>
<C Name="NameC5"/>
<C Name="NameC6"/>
</B>
和下面的XPath表達式作爲輸入:
/A/@Name
/A/B/@Name
/A/B/C/@Name
輸出應該在以下形式的表格:
NAMEA NameB1 NameC1
NAMEA NameB1 NameC2
NAMEA NameB1 NameC3
NAMEA NameB2 NameC4
NAMEA NameB2 NameC5
NAMEA NameB2 NameC6
我試圖讓這個表可用的Java XML包,如javax.xml.xpath,jdom等..無濟於事。
這似乎是
XPath.evaluate("/A/B/C/@Name", doc, XPathConstants.NODESET);
代碼將返回不能走過了「分離」節點。
我已經嘗試了許多XPath評估節點上的遞歸方式無濟於事。還想到DOM樹的DFS遍歷,但所有XPath評估程序似乎都返回分離的節點,其中node.getParent()將始終返回「null」。
「多XPath表達式感知」算法的任何想法,可以跟蹤嵌套的XPath表達式?
我有一種感覺,這是可能容易使用XSLT,但我的XSLT技能是非常生疏...
忘了提的是,XML,也不是XPath的是靜態的。 該表達式在沒有XML的預先知識的情況下給出。 – yarinbenado