2011-10-17 37 views
1

我做一個簡單的畫圖程序,在它的幻燈片和我有以下模式的XML文件:XML的Java和存儲信息的解析

對於每一個幻燈片,我存儲線或多個線段等如:

http://orhancanceylan.com/stack/file.xml

我走 「幻燈片」,此代碼:

NodeList nodeLst = doc.getElementsByTagName("Slide"); 
System.out.println(nodeLst.getLength()); 

,並採取迭代的節點:

Node fstNode = nodeLst.item(i); 

但在我的迭代中,我無法弄清楚我應該如何將線段或線條僅用於第一個節點(第一張幻燈片)。

我應該如何正確解析這些XML?

謝謝。

回答

3

也許你可以考慮使用XPath做仰視你的XML節點骯髒的工作:

http://download.oracle.com/javase/6/docs/api/javax/xml/xpath/package-summary.html

得到的只是從第一張幻燈片的段中的XPath可能是://Slide[id='0']/segment

例如,可能是這樣的:

XPathFactory factory = XPathFactory.newInstance(); 
XPath xpath = factory.newXPath(); 
XPathExpression expr = xpath.compile("//Slide[id='0']/segment"); 

然後用給定的XPath表達式評估您的文檔,並類型轉換resulte:

Object result = expr.evaluate(doc, XPathConstants.NODESET); 
NodeList nodes = (NodeList) result; 

這將使你在你的XML只是第一張幻燈片的<segment>節點。您可以從該答案中推斷如何使用XPath獲取更多XML節點。見http://www.ibm.com/developerworks/library/x-javaxpathapi/index.html

+0

非常感謝你! – CanCeylan