2012-05-08 3 views
0

Как узнать имя родительского узла, скажем, я на ярлыке = «рубашка», откуда я знаю, что его родителем является john_carter, чей родитель является «FG». Можно ли знать (в minidom)xml python parsing получить имя родительского узла: minidom

-90 . . .

 <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

спасибо. можно узнать дочерний узел. FG к john_carter к рубашке. то есть ребенок FG - john_carter, а ребенок john_carter - рубашка – nish

+0

, в основном мне нужно идти только на 3 (где более 5) уровней на объекты. есть способ узнать разные уровни – nish

+0

подождать некоторое время ... ни один орган не должен отвечать на это .. я вижу, что небольшое дополнение к вышеописанному поможет. скоро опубликует – nish

Смежные вопросы