爲了實現一個腳本導入到我的數據庫中,我想計算一個XML文件中節點的迭代次數。 我試圖用xmlstarlet,但每次他返回0作爲答案...xmlstarlet總是計數0
這裏是我的XML文件的樣本:
<?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>
<global xmlns="http://www.xxxxxxxxxxx">
<place geoAccuracy="0" geoStatus="0" geoLatDeg="0.0" geoLongDeg="0.0" id="123">
<name>XXXXXX</name>
<postalcode>12345</postalcode>
<city>city</city>
<country>country</country>
</place>
<place geoAccuracy="0" geoStatus="0" geoLatDeg="0.0" geoLongDeg="0.0" id="123">
<name>XXXXXX</name>
<postalcode>12345</postalcode>
<city>city</city>
<country>country</country>
</place>
在我的bash,我這樣做:
#!/bin/bash
FILE="places.xml" RESULT=$(xmlstarlet sel -t -v "count(//place)" $FILE)
echo $RESULT
每一次,它返回0,結果...我已經嘗試了不同的XPath,如「//全球/地方」或「/地方」,但結果是一樣的...
有沒有人有任何想法如何解決它? 我是使用Ubuntu服務器14.04LTS。
我覺得你忘了翻譯你的XPath,所以它說'place'而不是'lieu'(?) –
儘管如此,也許你必須爲xmlstarlet指定一些命名空間映射? –
你是對的......我沒有在我的演講中翻譯......我做了更正。但是,這個錯誤不是在我的代碼 – Yvo