Tôi đang sử dụng Python (minidom) để phân tích một tập tin XML in một cấu trúc phân cấp trông giống như thế này (thụt đầu dòng được sử dụng ở đây để hiển thị các mối quan hệ thứ bậc đáng kể):XML Parsing với Python và minidom
My Document
Overview
Basic Features
About This Software
Platforms Supported
Thay vào đó, chương trình lặp lại nhiều lần trên các nút và tạo ra các nút sau, in các nút trùng lặp. (Nhìn vào danh sách nút tại mỗi lần lặp, nó rõ ràng lý do tại sao nó thực hiện điều này nhưng tôi dường như không thể tìm thấy một cách để có được danh sách nút Tôi đang tìm kiếm.)
My Document
Overview
Basic Features
About This Software
Platforms Supported
Basic Features
About This Software
Platforms Supported
Platforms Supported
Đây là nguồn XML file:
<?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>
dưới đây là chương trình 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
tôi có thể sửa chữa vấn đề bằng cách không làm tổ yếu tố '' được, bằng cách thay đổi tên cấp dưới chủ đề để một cái gì đó như 'SubTopic1' và ' SubTopic2 '. Nhưng, tôi muốn tận dụng lợi thế của cấu trúc phân cấp XML dựng sẵn mà không cần các tên phần tử khác nhau; có vẻ như tôi nên có thể lồng ghép các yếu tố 'Chủ đề' và rằng phải có một cách nào đó để biết 'Chủ đề' cấp độ nào mà tôi đang xem xét.
Tôi đã thử một số hàm XPath khác nhau mà không thành công nhiều.
Nếu bạn muốn đầu ra của một đầu tiên bạn chỉ có thể in văn bản ra của mỗi yếu tố - Tôi không rõ ràng như thế nào structuting ảnh hưởng đến sản lượng truy nã – Mark