2017-04-18 6 views
0

だから、私はXMLを解析し、Pythonでコマンドラインで値を取ろうとしています。ここでは、かなり説明しているコードです。コマンドラインで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コードを書くために別のファイルを作成する必要はありません、私はコマンドでそれを行う必要があります。ありがとう。

+2

期待される出力は? – Inian

+0

[私は答えがこの記事にあると思う](http://stackoverflow.com/questions/4760215/running-shell-command-from-python-and-capturing-the-output) –

答えて

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)') 

を、それをテストできませんでした。試して返信してください。

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 
関連する問題