2012-05-08 3 views
0

がどのように私は、親ノードの名前を知っていますか私は親がその親「FG」であるjohn_carterであることを知っていますか、私はラベル=「シャツ」で午前と言います。それは可能XML Pythonの構文解析GET親ノード名:minidom

-90 (minidomに)知ることです。 。 。

 <Object type="Layer" id="6" label="FG" expanded="True"> 
      <Properties> 
       <Property id="blur" constant="True"> 
        <Value>0</Value> 
       </Property> 
       . 
       . 
       . 


       <Property id="objects" expanded="True" constant="True"> 
        <Object type="Layer" id="7" label="john_carter"> 
         <Properties> 
          <Property id="blur" constant="True"> 
           <Value>0</Value> 
          </Property> 
          . 
          . 
          . 


          <Property id="objects" expanded="True" constant="True"> 
           <Object type="Layer" id="8" label="shirt" selected="True"> 
            <Properties> 
             <Property id="blur" constant="True"> 
              <Value>0</Value> 
             </Property> 
             . 
             . 
             . 
          . 
          . 
          . 
       . 
       . 
       . 


    . 
    . 
    . 
+3

サンプルXMLを投稿するときは、有効なXMLであれば役立ちます。 – MattH

答えて

1

これはなんですか?

import xml.dom.minidom 

def getParentObjectNode(node): 
    while node.parentNode: 
     node = node.parentNode 
     if node.nodeName == "Object": 
      return node 

xml = xml.dom.minidom.parse("C:\\myxml.xml") 
for shirtNode in xml.getElementsByTagName("Object"): 
    if shirtNode.getAttribute("label") == "shirt": 
     break 

shirtParentObject = getParentObjectNode(shirtNode) 
print(shirtParentObject.getAttribute("label")) 
shirtParentParentObject = getParentObjectNode(shirtParentObject) 
print(shirtParentParentObject.getAttribute("label")) 
+0

ありがとうございます。子ノードを見つけることは可能ですか?シャツにjohn_carterへのFG。つまり、FGの子供はjohn_carter、john_carterの子供はシャツ – nish

+0

です。基本的に私は3つ(そこには5つ以上のレベルがあります)のレベルをオブジェクトに移動する必要があります。異なるレベルを知る方法はありますか? – nish

+0

しばらくお待ちください...体はこれに答えるべきではありません。すぐに投稿されます – nish