0
我有一個文件夾充滿了XML文件。我需要獲取每個節點中相同節點的節點值,然後將該值作爲列表寫入單個文本文件。從XML文件的文件夾中提取XML節點值?
換句話說,這些文件中的每個人都有一個節點。我需要一個文本文件中所有userid值的列表。
我並不需要一個過程,因爲這將只能做一次,所以我試圖找出一個shell腳本我的文件夾(我在OSX/Unix下)上運行。
我有一個文件夾充滿了XML文件。我需要獲取每個節點中相同節點的節點值,然後將該值作爲列表寫入單個文本文件。從XML文件的文件夾中提取XML節點值?
換句話說,這些文件中的每個人都有一個節點。我需要一個文本文件中所有userid值的列表。
我並不需要一個過程,因爲這將只能做一次,所以我試圖找出一個shell腳本我的文件夾(我在OSX/Unix下)上運行。
您可以使用Perl對於這一點,可以說這些都是你的文件
$ ls xml/*.xml
xml/1312537177.xml xml/1312537179.xml xml/1312537182.xml
,這是使用這個簡單的bash命令
$ for i in $(ls xml/*.xml); do cat $i | perl -M'XML::Bare' -e "local($/); print ((new XML::Bare(text => <STDIN>))->parse()->{'somenode'}{'userid'}{'value'});print \"\n\""; done;
1312537177
1312537179
1312537182
您可以從內容
$ cat xml/*.xml
<?xml version="1.0" encoding="UTF-8" ?>
<somenode><userid>1312537177</userid><otherstuff>fsadfadsf</otherstuff></somenode>
<?xml version="1.0" encoding="UTF-8" ?>
<somenode><userid>1312537179</userid><otherstuff>fsadfadsf</otherstuff></somenode>
<?xml version="1.0" encoding="UTF-8" ?>
<somenode><userid>1312537182</userid><otherstuff>fsadfadsf</otherstuff></somenode>
獲取用戶標識節點的內容。
當然你需要更改命令以適應您的XML結構。
注意,如果它不是已經安裝在你的機器,你可能需要安裝XML ::裸Perl模塊,。如果你的xml的結構不固定,你可以使用find_node函數http://metacpan.org/pod/XML::Bare。 (我已經安裝了perl v5.10.1)
希望這會有所幫助
所需輸出的輸入和格式的示例將有所幫助。 –