使用Python解析目录中所有文件的XML标记值

2024-06-01 09:29:21 发布

您现在位置:Python中文网/ 问答频道 /正文

尽管之前存在类似的问题,但我还是无法实现飞跃。帮助是有价值的!在

  • 我尝试递归地解析目录/子目录中的所有xml文件
  • 我正在查找标记“Operator id”显示的值

示例源XML:

<Operators>
   <Operator id="OId_LD">
   <OperatorCode>LD</OperatorCode>
   <OperatorShortName>ARRIVA THE SHIRES LIMIT</OperatorShortName>

这是我目前掌握的代码:

^{pr2}$

这是我正在运行的终端命令:

python -c "execfile('xml_tag.py'); jarv('/Users/admin/Projects/AtoB_GTFS')"

这是我收到的错误:

tfl_64-31_-37434-y05.xml

encodings.xml
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "xml_tag.py", line 8, in jarv
    dom=parse(targetfile)
  File "/usr/local/Cellar/python/2.7.8_1/Frameworks/Python.framework/Versions/2.7/lib/python2.7/xml/dom/minidom.py", line 1918, in parse
    return expatbuilder.parse(file)
  File "/usr/local/Cellar/python/2.7.8_1/Frameworks/Python.framework/Versions/2.7/lib/python2.7/xml/dom/expatbuilder.py", line 922, in parse
    fp = open(file, 'rb')
IOError: [Errno 2] No such file or directory: 'encodings.xml'
(frigo)andytmac:AtoB_GTFS admin$ python -c "execfile('xml_tag.py'); jarv('/Users/admin/Projects/AtoB_GTFS')"
tfl_64-31_-37434-y05.xml

如果我在“打印目标文件”行后面注释掉代码,它确实列出了我拥有的所有xml文件。在

谢谢你的帮助

安迪


Tags: 文件inpyadminparsetaglinexml
1条回答
网友
1楼 · 发布于 2024-06-01 09:29:21

您没有看到正确的位置(相对路径):当您使用for root, dirs, files in os.walk(target_folder):files是目录{}中文件名的列表,而不是它们的绝对路径。在

尝试用dom = parse(os.sep.join(root, targetfile))替换{}

相关问题 更多 >