2012-10-20 4 views
3

Voici mon fichier xmlPython XML- devient ce qui est entre deux nœuds

<gui> 
<object class="wxPanel" name="new"> 
    <object class="wxBoxSizer"> 
     <orient>wxVERTICAL</orient> 
     <object class="sizeritem"> 
      <object class="wxTextCtrl" name="a"></object> 
     </object> 
      <option>1</option> 
      <flag>wxEXPAND</flag> 
     </object> 
</object> 
</gui> 

Je veux obtenir exactement ce qui est entre la balise IUG

Je ne voudrais donc ceci:

<object class="wxPanel" name="new"> 
    <object class="wxBoxSizer"> 
     <orient>wxVERTICAL</orient> 
     <object class="sizeritem"> 
      <object class="wxTextCtrl" name="a"></object> 
     </object> 
      <option>1</option> 
      <flag>wxEXPAND</flag> 
     </object> 
</object> 

J'utilise actuellement

minidom.parse("path to xml").getElementsByTagName('gui')[0].firstChild.nodeValue 

Toutefois, cela ne fonctionne pas avec l'obtention de xml en tant que chaîne.

+1

Avez-vous essayé '.innerXML' ou' .innerHTML'? – Blender

Répondre

0

essayer toxml

gui = minidom.parse("path to xml").getElementsByTagName('gui')[0] 
gui.getElementsByTagName('object')[0].toxml() 
+0

Bon mais il garde toujours les tags et

0

Vous pourriez être en utilisant un analyseur qui serait plus approprié. ElementParser ferait l'affaire assez bien:

from xml.etree import ElementTree as ET 
tree = ET.parse('path/to/xml.xml') 
gui = tree.getroot() 
ET.tostring(gui.getchildren()[0]) 

Maintenant, tout cela semble un peu hackish, et est probablement pas être très fiable de toute façon, quelle que soit l'analyseur que vous utilisez.

Questions connexes