こんにちはxmlns="http://www.w3.org/1999/xhtml"
、ソースの xhtml/xml ファイルから名前空間を削除し、ルート ノードの名前を変更したいと考えています。これを 1 つのスタイル シートのみを使用して実行したいと考えています。これは可能ですか?
これが私のソースxml/xhtmlの例です:
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title/>
<meta/>
</head>
<body link="#000000" bgcolor="#FFFFFF" leftmargin="0">
<div>
<p>Here is a paragraph</p>
</div>
</body>
</html>
ここに私の望ましい出力があります:
<document>
<section>
<paragraph>Here is a paragraph</paragraph>
</section>
</document>
現在、2 つのスタイル シート (以下を参照) を使用してのみこの結果を達成できますが、これらの命令を 1 つのスタイル シートに結合できるようにしたいと考えています。これは可能ですか?助けてくれてありがとう。
現在のスタイル シート 1:
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" version="1.0" encoding="UTF-8"/>
<xsl:template match="*|@*|node()">
<xsl:copy>
<xsl:apply-templates select="*|@*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="@*">
<xsl:attribute name="{local-name()}"><xsl:value-of select="."/></xsl:attribute>
<xsl:apply-templates/>`
</xsl:template>`
<xsl:template match="*">
<xsl:element name="{local-name()}">
<xsl:apply-templates select="*|@*|node()"/>
</xsl:element>
</xsl:template>
</xsl:stylesheet>
現在のスタイルシート 2:
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:template match="*|@*|text()">
<xsl:copy>
<xsl:apply-templates select="*|@*|text()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="html">
<document>
<xsl:apply-templates select="*|@*|text()"/>
</document>
</xsl:template>
<xsl:template match="div">
<section>
<xsl:apply-templates select="*|@*|text()"/>
</section>`
</xsl:template>`
<xsl:template match="p">
<paragraph>
<xsl:apply-templates select="*|@*|text()"/>
</paragraph>
</xsl:template>`
<xsl:template match="head"/>
</xsl:stylesheet>