Today I get to learn how to use xmllint properly. It does not seem to be well covered or explained. I plan to use a single language resource file to run my entire system. I have a mixture of bash scripts and php pages that must read from this language file.
Currently I am using the following format in my xml file en.xml:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<item id="index.php">
<label>LABEL</label>
<value>VALUE</value>
<description>DESCRIPTION</description>
</item>
<item id="config.php">
<label>LABEL</label>
<value>VALUE</value>
<description>DESCRIPTION</description>
</item>
</resources>
Now I need to start with a bash script line that should pull the data values from the xml file. For example I want to get the value of DESCRIPTION
from the index.php
item.
I was using
xmllint --xpath 'string(//description)' /path/en.xml
for a different layout which worked, but now that I am changing the layout of my xml file, I am lost as to how best to target a specific <item>
and then drill down to its child element in the bash script.
Can someone help with a xmllint --xpath
line to get this value please?
xmllint --version xmllint: using libxml version 20626 compiled with: Threads Tree Output Push Reader Patterns Writer SAXv1 FTP HTTP DTDValid HTML Legacy C14N Catalog XPath XPointer XInclude Iconv ISO8859X Unicode Regexps Automata Expr Schemas Schematron Modules Debug
which doesn't have the --xpath option – Mukluk