I have a pretty easy problem to solve, but have been at it for days without luck.
I have an XML document like this:
<?xml version="1.0"?>
<readiness>
<model>
<name>Power</name>
<state>
<pdlReq>PASS</pdlReq>
<fileReq>PASS</fileReq>
</state>
</model>
</readiness>
And I am trying to select.. anything really. I can't get even the simpliest examples to work. What I've tried:
xmlstarlet sel -T -t -m "//readiness" modelReadinessState.xml
xmlstarlet sel -T -t -m "/readiness" modelReadinessState.xml
xmlstarlet sel -T -t -m "readiness" modelReadinessState.xml
xmlstarlet sel -T -t -m "/readiness/model[name='Power']" -v pdl modelReadinessState.xml
xmlstarlet sel -T -t -m "/readiness/model[name='Power']" -v pdl -n modelReadinessState.xml
xmlstarlet sel -T -t -m "/readiness/model[name='Power']" modelReadinessState.xml
xmlstarlet sel -t -m "//readiness" modelReadinessState.xml
xmlstarlet sel -t -m "/readiness" modelReadinessState.xml
xmlstarlet sel -t -m "readiness" modelReadinessState.xml
I have no idea why it's not working :( I just get blanks returned back.
Note: There are no namespaces defined in this xml file.
Any ideas?
Try these:
xmlstarlet sel -t -c "//readiness" modelReadinessState.xml
xmlstarlet sel -t -c "readiness/model/name" modelReadinessState.xml
xmlstarlet sel -t -v "readiness/model/name" modelReadinessState.xml