How To Ignore Attribute Without Quotes In Xml
i want to count how many times tag1 occurs givin this 123.xml file ( streaming from the internet) 10-10-10 <
Solution 1:
You input XML/HTML structure has invalid tags/attributes and should be recovered beforehand:
xmlstarlet
solution:
xmlstarlet fo -o -R -H -D 123.xml 2>/dev/null | xmlstarlet sel -t -v "count(//tag1)" -n
The output:
2
Details:
fo (or format)
- Format XML document(s)-o or --omit-decl
- omit xml declaration-R or --recover
- try to recover what is parsable-D or --dropdtd
- remove the DOCTYPE of the input docs-H or --html
- input is HTML2>/dev/null
- suppress errors/warnings
Solution 2:
XML always requires quotes around attribute values. If you want to keep using XML, you first must produce valid XML from your input. You could use an SGML processor such as OpenSP (in particular, the osx
program) to format your input into wellformed XML. It's as simple as invoking osx <your Input file>
on it.
If you're on Ubuntu/Debian Linux, you can install osx
by invoking sudo apt-get install opensp
on the command line (and similarly on other Unix systems).
Post a Comment for "How To Ignore Attribute Without Quotes In Xml"