我有一个像下面的xml片段
<Detail uid="6"> <![CDATA[ <div class="heading">welcome to my page</div> <div class="paragraph">this is paraph</div> ]]> </Detail>
我希望能够改变
<div class="heading">...</div> to <h1>Welcome to my page</h1> <div class="paragraph">...</div> to <p>this is paragraph</p>
你知道我怎么能在xslt 1.0中做到这一点
怎么样运行两个变换.
原文链接:https://www.f2er.com/xml/292635.html通过1.)
<?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="xml" indent="yes" encoding="UTF-8"/> <xsl:template match="/"> <xsl:apply-templates /> </xsl:template> <xsl:template match="Detail"> <Detail> <xsl:copy-of select="@*"/> <xsl:value-of select="." disable-output-escaping="yes" /> </Detail> </xsl:template> </xsl:stylesheet>
会产生:
<?xml version="1.0" encoding="UTF-8"?> <Detail uid="6"> <div class="heading">welcome to my page</div> <div class="paragraph">this is paraph</div> </Detail>
通过2.)
<?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="xml" indent="yes" encoding="UTF-8"/> <xsl:template match="/"> <xsl:apply-templates /> </xsl:template> <xsl:template match="@*|node()"> <xsl:copy> <xsl:apply-templates select="@*| node()" /> </xsl:copy> </xsl:template> <xsl:template match="div[@class='heading']"> <h1><xsl:value-of select="."/></h1> </xsl:template> <xsl:template match="div[@class='paragraph']"> <p><xsl:value-of select="."/></p> </xsl:template> </xsl:stylesheet>
生产:
<?xml version="1.0" encoding="UTF-8"?> <Detail uid="6"> <h1>welcome to my page</h1> <p>this is paraph</p> </Detail>