sto usando Python (minidom) per analizzare un file XML che consente di stampare una struttura gerarchica che sembra qualcosa di simile (indentazione viene utilizzato qui per mostrare la relazione gerarchica significativo):analisi XML con Python e minidom
My Document
Overview
Basic Features
About This Software
Platforms Supported
Invece, il programma itera più volte sui nodi e produce quanto segue, stampando i nodi duplicati. (Guardando la lista dei nodi ad ogni iterazione, è ovvio il motivo per cui lo fa, ma non riesco a trovare un modo per ottenere la lista dei nodi che sto cercando.)
My Document
Overview
Basic Features
About This Software
Platforms Supported
Basic Features
About This Software
Platforms Supported
Platforms Supported
Qui è la sorgente 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>
Ecco il programma 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
ho potuto risolvere il problema, non la nidificazione elementi 'soggetto', cambiando i nomi degli argomenti di livello inferiore a qualcosa come 'SubTopic1' e ' SubTopic2' . Ma, voglio approfittare della strutturazione gerarchica XML integrata senza bisogno di nomi di elementi diversi; sembra che dovrei essere in grado di annidare elementi 'Argomento' e che ci dovrebbe essere un modo per sapere quale livello 'Argomento' sto guardando attualmente.
Ho provato un numero di diverse funzioni XPath senza molto successo.
Se si desidera che l'uscita del primo si può semplicemente stampare il testo di ogni elemento - non mi è chiaro come lo structuting influisce sull'uscita voluta – Mark