Mój XSLT wyprowadza niektóre znaczniki z atrybutem xmlns:x="http://something"
... Jak uniknąć tego nadmiarowego atrybutu? Wyjściowy plik XML nigdy nie jest używany ani w x:tag
, ani w x:attribute
.Omijaj niepotrzebne przestrzenie nazw z wyjścia
PRZYKŁAD XML:
<root><p>Hello</p><p>world</p></root>
Przykład XSL:
<xsl:transform version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xlink="http://www.w3.org/1999/xlink">
<xsl:output encoding="UTF-8" method="xml" version="1.0" indent="no"/>
<xsl:template match="root"><foo>
<xsl:for-each select="p">
<p><xsl:value-of select="." /></p>
</xsl:for-each></foo>
<xsl:for-each select="x">
<link xlink:href="{x}" />
</xsl:for-each></foo>
</xsl:template>
PRZYKŁAD XML wyjściowych:
<foo>
<p xmlns:xlink="http://www.w3.org/1999/xlink">Hello</p>
<p xmlns:xlink="http://www.w3.org/1999/xlink">world</p>
</foo>
xmlns:xlink
jest narzutem, nie jest używany!
A typical case gdzie XSLT musi używać nazw ale nie wyjście:
<xsl:value-of select="php:function('regFunction', .)" />
Proszę edytować pytanie i dostarczyć dokument XML i źródła kod transformacji. Bez nich nikt nie musi zgadywać. –
OK, edytowałem: źródła XML-IN, XSLT i XML-OUT. –