我試圖找出如何最好地翻譯這個:XML解析/ DOM操作在Java中
<Source><properties>
....
<name>wer</name>
<delay>
<type>Deterministic</type>
<parameters length="1">
<param value="78" type="Time"/>
</parameters>
</delay>
<batchSize>
<type>Cauchy</type>
<parameters length="2">
<param value="23" type="Alpha"/>
<param value="7878" type="Beta"/>
</parameters>
</batchSize>
...
</properties></Source>
分爲:
<Source><properties>
....
<name>wer</name>
<delay>
<Deterministic Time="78"/>
</delay>
<batchSize>
<Cauchy Alpha="23" Beta="7878"/>
</batchSize>
........
</properties></Source>
我使用的DocumentBuilderFactory試過,但我在我可以訪問名稱標籤的值,我無法訪問延遲/批次部分中的值。這是我的代碼使用
Element prop = (Element)propertyNode;
NodeList nodeIDProperties = prop.getElementsByTagName("name");
Element nameElement = (Element)nodeIDProperties.item(0);
NodeList textFNList = nameElement.getChildNodes();
String nodeNameValue = ((org.w3c.dom.Node)textFNList.item(0)).getNodeValue().trim();
//--------
NodeList delayNode = prop.getElementsByTagName("delay");
調用getElementByName(「類」)或「參數」似乎並不返回任何東西我可以工作。我是否錯過了某些東西,或者是否有更簡單的方法來處理現有的xml。
需要使用定義的格式以允許Castor進行編組和解組。
任何幫助將不勝感激。
這是更多的XML轉換,你不應該使用XSLT嗎? – saugata 2010-03-04 07:26:09
我強烈建議使用XPATH來執行任何XML解析,但在我看來,它更符合邏輯。這是一個很好的教程(http://www.ibm.com/developerworks/library/x-javaxpathapi.html)。你能否詳細說明當你調用getElementsByName(「type」)時你到底得到了什麼? NullPointerExceptions /空字符串? – Luhar 2010-03-04 07:31:30
你的標題是不正確的,你不解析,但操縱一個DOM樹。 – 2010-03-04 08:28:49