Xml: Difference between revisions

From miki
Jump to navigation Jump to search
Line 1: Line 1:
== Links ==
== Links ==
* [[XSLT]]
* [[XSLT]]
* [https://www.w3.org/TR/REC-xml/#charsets XML Charset] — If you think that XML is by far the shittiest standard ever, then looking at this page removes any doubts about that conclusion.
* [https://www.w3.org/TR/REC-xml/#charsets XML Charset] — If you are not sure about XML being by far the shittiest standard ever, then looking at this page will remove any doubt.


== Tips ==
== Tips ==

Revision as of 04:37, 20 September 2021

Links

  • XSLT
  • XML Charset — If you are not sure about XML being by far the shittiest standard ever, then looking at this page will remove any doubt.

Tips

Format XML document

Using xmllint from package libxml2-utils [1]:

xmllint --format doc.xml
XMLLINT_INDENT="    " xmllint --format doc.xml
XMLLINT_INDENT=$'\t'  xmllint --format doc.xml | sponge doc.xml

Using xsltproc and XSLT stylesheet. This requires an intermediate XSLT document:

cat > indent.xslt << __HERE__
<?xml version="1.0" encoding="UTF-8" ?>
<xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
    <xsl:output method="xml"  encoding="UTF-8" indent="yes" />
    <xsl:strip-space elements="*"/>

    <xsl:template match="@*|node()">
        <xsl:copy>
            <xsl:apply-templates select="@*|node()"/>
        </xsl:copy>
    </xsl:template>
</xsl:transform>
__HERE__
xsltproc indent.xslt doc.xml

Use both single and double quotes in attributes

From the XML specification [2]:

 To allow attribute values to contain both single and double quotes, the apostrophe or 
 single-quote character (') may be represented as "&apos;", and the double-quote 
 character (") as "&quot;".
  <element attr="quote &quot; apostrophe &apos;">Foo</element>