Um ein Skript in meine Datenbank zu importieren, möchte ich die Anzahl der Iterationen eines Knotens in einer XML-Datei zählen. Ich versuche xmlstarlet zu verwenden, aber jedes Mal, wenn er 0 als Antwort zurückkehrt ...xmlstarlet zählt immer 0
Hier ist ein Beispiel meiner XML-Datei:
<?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>
In meinem bash, tat ich dies:
#!/bin/bash
FILE="places.xml" RESULT=$(xmlstarlet sel -t -v "count(//place)" $FILE)
echo $RESULT
Jedes Mal, gibt sie 0 als Ergebnis ... ich habe wie andere XPaths versucht „// global/Ort“ oder „/ Platz“, aber das Ergebnis ist das gleiche ...
Hat jemand eine Idee? Wie löst man es? Ich benutze einen Ubuntu-Server 14.04LTS.
Ich glaube, du hast vergessen, deinen XPath so zu übersetzen, dass er 'place' anstelle von' lieu' (?) Sagt. –
Trotzdem musst du vielleicht ein Namensraum-Mapping für xmlstarlet angeben? –
Sie haben Recht ... Ich habe in meiner Präsentation nicht übersetzt ... Ich habe die Korrektur gemacht. Aber dieser Fehler war nicht in meinem Code – Yvo