Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Python中获取子属性值_Python_Python 2.7_Minidom - Fatal编程技术网

如何在Python中获取子属性值

如何在Python中获取子属性值,python,python-2.7,minidom,Python,Python 2.7,Minidom,我有一个这样的xml文件 <approved-by approved="yes"> <person> <name>XXX/name><signature>XXXXX</signature> <location>XX</location><company>XXX</company><department>XX</department> </person&g

我有一个这样的xml文件

<approved-by approved="yes">
<person>
<name>XXX/name><signature>XXXXX</signature>
<location>XX</location><company>XXX</company><department>XX</department>
</person>
</approved-by>
<revision-history suppress="yes">
<rev-info>
<rev>PA1</rev>
<date><y>2013</y><m>01</m><d>22</d></date>
from xml.dom.minidom import parse, parseString
import os
import sys
def shahul(dir):   
  for r,d,f in os.walk(dir):
     for files in f:
        if files.endswith(".xml"):
            dom=parse(os.path.join(r, files))
            name = dom.getElementsByTagName('rev')
            title = dom.getElementsByTagName('title')
            approved=dom.getAttribute('approved')
            print (files, title[0].firstChild.nodeValue,name[0].firstChild.nodeValue, approved, sep='\t')
shahul("location")
我能够获取“rev”下的值,但无法获取“approved by”属性的值。我知道我的语法不适合获得approved的值,但我不知道

我需要以下内容作为输出

文件名,标题,第1页,是


请指导我。

假设您在XML中只有一个
approved by
标记:

更改:

approved = dom.getAttribute('approved')
致:


您的XML文件似乎有一些语法问题:
例如,从未关闭。我只是复制了XML文件的一部分。很抱歉,我以前没有说过这一点。我以前尝试过这一步,但出现了以下错误。属性错误:“节点列表;对象没有属性'getAttribute'@Shahul Hameed:对不起,我使用了“selenium语法”而不是“minidom语法”;回答修改了…谢谢你的帮助,兄弟。我又犯了同样的错误。在minidom中,似乎没有类似(.attributes)的语法。也许它就在那里。我们使用它是错误的”(现在它说,AttributeError“'NodeList'对象没有属性”“attributes”。@Shahul Hameed:对不起,我再次使用了“selenium语法”而不是“minidom语法”(这次是
getElementByTagName
而不是
getElementsByTagName
)。请现在试试(对我有用)。
approved_by = dom.getElementsByTagName('approved-by')
approved = approved_by[0].attributes['approved'].value