Wie erstelle ich eine XPath-Liste für eine XML-Nachricht?

635
user2647763

Wie erstelle ich eine XPath-Liste für eine XML-Nachricht?

Vielen Dank, dass Sie auf meine Threads eingegangen sind und sich dieses Problem angesehen haben. Ich habe eine XML-Nachricht erstellt. Ich möchte eine Liste / einen Bericht als erstellen

1) Alle Xpath der XML-Nachricht

2) Xpath, Dateninhalt für diesen XPATH

Hier ist ein Beispiel

<?xml version="1.0"?> <PARTS> <TITLE>Computer Parts</TITLE> <PART> <ITEM>Motherboard</ITEM> <MANUFACTURER>ASUS</MANUFACTURER> <MODEL>P3B-F</MODEL> <COST> 123.00</COST> </PART> <PART> <ITEM>Video Card</ITEM> <MANUFACTURER>ATI</MANUFACTURER> <MODEL>All-in-Wonder Pro</MODEL> <COST> 160.00</COST> </PART> <PART> <ITEM>Sound Card</ITEM> <MANUFACTURER>Creative Labs</MANUFACTURER> <MODEL>Sound Blaster Live</MODEL> <COST> 80.00</COST> </PART> <PART> <ITEM>inch Monitor</ITEM> <MANUFACTURER>LG Electronics</MANUFACTURER> <MODEL> 995E</MODEL> <COST> 290.00</COST> </PART> </PARTS> 

Ich habe die XML-Liste manuell erstellt

 /PARTS/TITLE Computer Parts /PARTS/PART[1]/ITEM Motherboard /PARTS/PART[1]/MANUFACTURER ASUS /PARTS/PART[1]/MODEL P3B-F /PARTS/PART[1]/COST 123.00 /PARTS/PART[2]/ITEM Video Card /PARTS/PART[2]/MANUFACTURER ATI ............ .............. .................. ................... 

Ich habe XMLSPY, und ich habe keine zusätzlichen Tools für XMLSPY.

Ich habe es mit xml_grep in Linux versucht. Es braucht die XPATH als Eingabe, um den Dateninhalt zu erhalten. Ich kann xml_grep nicht verwenden, um Attribute von XML-Nachrichten zu extrahieren.

Wie können XPATHs / XPATH-Dateninhalte extrahiert werden?

Danke fürs Helfen.

1

1 Antwort auf die Frage

0
Luis Muñoz

Hier ist meine Antwort auf meine ähnliche Frage: p

echo -e "setrootns\ncd defaultns:beans\ndir *" | xmllint --shell applicationContext.xml | grep -v -E ' TEXT| content=' | gawk 'BEGIN{ RS="ELEMENT "; FS=" *\n"} { print "/beans/" $1 "/@" $2 }' | sed -re 's/ +ATTRIBUTE // | uniq' /beans// > setrootns/@/ > cd defaultns:beans /beans/jaxrs:server/@id /beans/bean/@id /beans/import/@resource 

Der Echo-Befehl leitet die Shell-Befehle followinf xmllint durch

# tell xmllint this xml has namespace declarations (not your case) setrootns # move to the first root node (PARTS in your case) cd defaultns:beans # list node contents dir * 

Ergebnis:

/ > setrootns / > cd defaultns:beans beans > dir * ELEMENT jaxrs:server ATTRIBUTE id TEXT content=CreateSurveyService ATTRIBUTE address TEXT content=/services ELEMENT bean ATTRIBUTE id TEXT content=routingDataSource ATTRIBUTE class TEXT content=com.lsr.usc.datasource.routing.RegionCod... 

Die restlichen Befehle werden zum Analysieren dieser Ausgabe verwendet.