Xml: Difference between revisions
Jump to navigation
Jump to search
(→Links) |
(→Tips) |
||
Line 29: | Line 29: | ||
__HERE__ |
__HERE__ |
||
xsltproc indent.xslt doc.xml |
xsltproc indent.xslt doc.xml |
||
</source> |
|||
=== Use both single and double quotes in attributes === |
|||
From the XML specification [https://stackoverflow.com/questions/3961505/how-can-i-escape-double-quotes-in-xml-attributes-values]: |
|||
To allow attribute values to contain both single and double quotes, the apostrophe or |
|||
single-quote character (') may be represented as "'", and the double-quote |
|||
character (") as """. |
|||
<source lang="xml"> |
|||
<element attr="quote $quot; apostrophe $apos;">Foo</element> |
|||
</source> |
</source> |
Revision as of 16:45, 8 July 2021
Links
- XSLT
- 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.
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 "'", and the double-quote character (") as """.
<element attr="quote $quot; apostrophe $apos;">Foo</element>