我使用Python(minidom命名)來分析,打印的分層結構看起來是這樣的(縮進這裏用來顯示顯著層次關係)的XML文件解析:XML使用Python和minidom命名
My Document
Overview
Basic Features
About This Software
Platforms Supported
相反,程序在節點上迭代多次,產生以下內容,打印重複節點。 (看着在每次迭代的節點列表,這是顯而易見的,爲什麼它這樣做,但我似乎無法找到一個辦法讓我要找的節點列表。)
My Document
Overview
Basic Features
About This Software
Platforms Supported
Basic Features
About This Software
Platforms Supported
Platforms Supported
這裏是XML源代碼文件:
<?xml version="1.0" encoding="UTF-8"?>
<DOCMAP>
<Topic Target="ALL">
<Title>My Document</Title>
</Topic>
<Topic Target="ALL">
<Title>Overview</Title>
<Topic Target="ALL">
<Title>Basic Features</Title>
</Topic>
<Topic Target="ALL">
<Title>About This Software</Title>
<Topic Target="ALL">
<Title>Platforms Supported</Title>
</Topic>
</Topic>
</Topic>
</DOCMAP>
這裏是Python程序:
import xml.dom.minidom
from xml.dom.minidom import Node
dom = xml.dom.minidom.parse("test.xml")
Topic=dom.getElementsByTagName('Topic')
i = 0
for node in Topic:
alist=node.getElementsByTagName('Title')
for a in alist:
Title= a.firstChild.data
print Title
我能不能嵌套「主題」元素,通過改變低層主題名稱爲類似「SubTopic1」和「解決問題SubTopic2' 。但是,我想利用內置的XML分層結構而不需要不同的元素名稱;似乎我應該能夠嵌套'主題'元素,並且應該有一些方法來知道我目前正在查看的'主題'級別。
我已經嘗試了許多不同的XPath函數,但沒有取得太大的成功。
如果你想在第一個的輸出,您可以只打印文本每個元素的 - 我並不清楚structuting如何影響通緝輸出 – Mark