属性值以模式开头时获取标签
我正在尝试用ElementTree解析嵌套的XML。
我的XML有: ... .....
<JOB D="32" APPLICATION="DUDDY" PARENT_FOLDER="FOLDEXMAPLEL" END_FOLDER="N">
<VARIABLE NAME="%%YESTER" VALUE="%%$CALCDATE %%$ODATE -2" />
<VARIABLE NAME="%%Y2020" VALUE="GO" />
<VARIABLE NAME="%%Y2021" VALUE="G1" />
<VARIABLE NAME="%%Y2022" VALUE="G2" />
<VARIABLE NAME="%%M01" VALUE="1" />
<VARIABLE NAME="%%M02" VALUE="2" />
<VARIABLE NAME="%%M03" VALUE="3" />
<VARIABLE NAME="%%M04" VALUE="4" />
<VARIABLE NAME="%%M05" VALUE="5" />
<VARIABLE NAME="%%M06" VALUE="6" />
<VARIABLE NAME="%%M07" VALUE="7" />
<VARIABLE NAME="%%PEP-APP_NAME" VALUE="DDDD" />
<VARIABLE NAME="%%PEP-PLATFORM_NAME" VALUE="LIST" />
<VARIABLE NAME="%%PEP-TASK_NAME" VALUE="LIST-may" />
<VARIABLE NAME="%%PEP-ARGUMENTS" VALUE="%%Argument" />
<VARIABLE NAME="%%PEP-ACCOUNT" VALUE="VALUESSSS" />
<VARIABLE NAME="%%Y2023" VALUE="G3" />
.........
当名称
的值以%% PEP - *
开头时,我正在尝试获取所有value
s。
我正在尝试查找
方法,但它不起作用。
for try in j_nodeOS.find(f"./VARIABLE[@NAME='']")
I'm trying to parse a nested XML with ElementTree.
My xml has:
....
.....
<JOB D="32" APPLICATION="DUDDY" PARENT_FOLDER="FOLDEXMAPLEL" END_FOLDER="N">
<VARIABLE NAME="%%YESTER" VALUE="%%$CALCDATE %%$ODATE -2" />
<VARIABLE NAME="%%Y2020" VALUE="GO" />
<VARIABLE NAME="%%Y2021" VALUE="G1" />
<VARIABLE NAME="%%Y2022" VALUE="G2" />
<VARIABLE NAME="%%M01" VALUE="1" />
<VARIABLE NAME="%%M02" VALUE="2" />
<VARIABLE NAME="%%M03" VALUE="3" />
<VARIABLE NAME="%%M04" VALUE="4" />
<VARIABLE NAME="%%M05" VALUE="5" />
<VARIABLE NAME="%%M06" VALUE="6" />
<VARIABLE NAME="%%M07" VALUE="7" />
<VARIABLE NAME="%%PEP-APP_NAME" VALUE="DDDD" />
<VARIABLE NAME="%%PEP-PLATFORM_NAME" VALUE="LIST" />
<VARIABLE NAME="%%PEP-TASK_NAME" VALUE="LIST-may" />
<VARIABLE NAME="%%PEP-ARGUMENTS" VALUE="%%Argument" />
<VARIABLE NAME="%%PEP-ACCOUNT" VALUE="VALUESSSS" />
<VARIABLE NAME="%%Y2023" VALUE="G3" />
.........
I'm trying to get all VALUE
s when the value of NAME
begins with %%PEP-*
.
I'm trying with the find
method but it doesn't work.
for try in j_nodeOS.find(f"./VARIABLE[@NAME='']")
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您可以使用
startswith()
检查该行。而且,假设您对所有变量
行具有相同的格式,则我只是将行分开,直到找到所需的值。这会给你
You can check the line using
startswith()
. And, assuming you have the same format for allVARIABLE
lines, I would just split the line until I find the needed value.This would give you
可以用ElementTree来完成,尽管有点麻烦:
使用LXML可以容易得多:
它应该使您获得相同的输出:
It can be done with ElementTree, though it's a bit cumbersome:
It's far easier with lxml:
and it should get you the same output: