×

xml 实体

xml中html实体的用法及声明XML头

管理员 管理员 发表于2010-03-03 09:05:17 浏览3690 评论0

抢沙发发表评论

在用xslt转化xml时候经常会遇到html实体转化的问题,我今天特意总结和探讨了一下,发现三种引用html实体的方法,大家今后可以借鉴,这里以引用copy 符号为例。

xslt文件:
 

<?xml version="1.0" encoding="GB2312"?>
<!DOCTYPE copyright [
<!ENTITY Copyright "&copy;">
]>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 <xsl:output method="xml" version="1.0" encoding="GB2312" indent="yes" />
 <xsl:template match="/">ffffff &Copyright; gggggg<xsl:text disable-output-escaping="yes">&copy;<![CDATA[&copy;]]></xsl:text>
</xsl:template>
</xsl:stylesheet>

xml文件:

<?xml version="1.0" encoding="GB2312"?>
<?xml-stylesheet type="text/xsl" href="entities.xslt"?>
<ff></ff>

显示结果为

ffffff &copy; gggggg&copy; &copy;

三个&copy; 显示的方法不一样

第一个用 实体定义的方法

第二个用&amp;转&的方法

第三个用CDATA节的方法

注意第二和第三中方法都需要放在

<xsl:text disable-output-escaping="yes">里面

好,html实体介绍到此。

在xslt中显式声明XML头的办法,即加入 <?xml version="1.0" encoding="utf-8"?>头,方法如下

1. <xsl:output omit-xml-declaration="no" method="xml" encoding="utf8" /> 这样可以自动加入

2. 如果上面的无法实现就强行插入数据 <xsl:text disable-output-escaping="yes"> <![CDATA[ <?xml version="1.0" encoding="utf-8"?>]]> </xsl:text>也可以实现类似的方法

3.在转换器中指定参数设置也可以达到效果。

群贤毕至

访客