所以,我正在尝试解析xml并通过python在命令行上获取值。这是几乎可以解释的代码。
APPLY_DIR=$(python -c 'from xml.dom import minidom;xmldoc=minidom.parse("args.xml");itemlist=xmldoc.getElementsByTagName("item");print str(itemlist[6].attributes["patchApplyDir"])')
REVERT_DIR=$(python -c 'from xml.dom import minidom;xmldoc=minidom.parse("args.xml");itemlist=xmldoc.getElementsByTagName("item");print str(itemlist[7].attributes["patchRevertDir"])')
echo $APPLY_DIR
echo $REVERT_DIR
问题是它返回以下输出:
<xml.dom.minidom.Attr instance at 0x7fba97db07e8>
<xml.dom.minidom.Attr instance at 0x7fb820e80998>
这是我的xml文件args.xml
<data>
<args>
<item svn_repo = "https://ntil-svn-u1:18080/svn/HSAN_SW_DEVELOPMENT/HSAN-SW-DEV/Project/Engineering/Code/HSAN_INTEGRATION/HSAN_MERGE/Tags/HSAN_ST_RELEASE_16_12_2016_"></item>
<item svn_revision = "991/"></item>
<item checkout_path = "/root/Neeraj/GGG"></item>
<item pre_build = "Default1"></item>
<item build_script = "Default1"></item>
<item svnCheckoutPath = "/root/Neeraj/GGG"></item>
<item patchApplyDir = "./GGG/Apply"></item>
<item patchRevertDir = "./GGG/Revert"></item>
<item APPLY_DIR="./Apply"></item>
<item REVERT_DIR="./Revert"></item>
<item VERSION_MINOR="100"></item>
<item VERSION_INTERNAL="200"></item>
<item INPUT="300"></item>
</args>
</data>
请让我知道我在这里做错了什么?另外,我不想创建一个单独的文件来编写python代码,我只能在命令中执行它。感谢。
答案 0 :(得分:2)
如果您想要所选项目的值,请使用.value
:
APPLY_DIR=$(python -c 'from xml.dom import minidom;xmldoc=minidom.parse("args.xml");itemlist=xmldoc.getElementsByTagName("item");print itemlist[6].attributes["patchApplyDir"].value')
REVERT_DIR=$(python -c 'from xml.dom import minidom;xmldoc=minidom.parse("args.xml");itemlist=xmldoc.getElementsByTagName("item");print itemlist[7].attributes["patchRevertDir"].value')
echo $APPLY_DIR
# ./GGG/Apply
echo $REVERT_DIR
# ./GGG/Revert
答案 1 :(得分:1)
如果您需要该值,请尝试执行attributes['attribute'].value
像:
APPLY_DIR=$(python -c 'from xml.dom import minidom;xmldoc=minidom.parse("args.xml");itemlist=xmldoc.getElementsByTagName("item");print str(itemlist[6].attributes["patchApplyDir"].value)')
在手机上,无法测试。尝试回复。