Чтобы реализовать скрипт для импорта в мой db, я хотел бы подсчитать количество итераций узла в XML-файле. Я пытался использовать XMLStarlet, но каждый раз, когда он возвращается 0, как ответ ...xmlstarlet всегда count 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>
В моем Баше, я сделал это:
#!/bin/bash
FILE="places.xml" RESULT=$(xmlstarlet sel -t -v "count(//place)" $FILE)
echo $RESULT
Каждый раз, она возвращает 0 в результате ... Я пробовал различные XPaths как «// глобальный/место» или «/» место, но результат тот же ...
Кто-нибудь имеет представление о как его решить? Я использую сервер Ubuntu 14.04LTS.
Я думаю, что вы забыли перевести свой XPath, поэтому он говорит 'place' вместо' lieu' (?) –
Несмотря на это, возможно, вам нужно указать некоторое сопоставление пространства имен для xmlstarlet? –
Вы правы ... Я не переводил свою презентацию ... Я сделал исправление. Но этой ошибки не было в моем коде – Yvo