我有一个XML(XHTML)文件,我正在使用XSLT将其转换为另一个XML文件。我能够成功转换所有内容,但我需要在输出文件中包含一个Javascript。使用我的XSLT它不包括Javascript所以根据建议我删除了CDATA部分的注释部分(在XSLT中)并尝试包含脚本但在Dreamweaver中删除注释后它显示CDATA部分行的语法错误开始即<![CDATA[
。
我的输入文件:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
</head>
<body>
<div class="TF" id="id8">
<div class="iDev">
<div class="q">
T <input type="radio" name="o0" id="t0" onclick="getFeedback()"/>
</div>
</div>
</div>
</body>
</html>
期望输出:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
</head>
<body>
<div class="QT" id="id10">
<script type="text/javascript">
<!-- //<![CDATA[
var numQuestions = 4;
var rawScore = 0;
var actualScore = 0;
function getAnswer()
{
}
function calulate()
{
}
//]]> -->
</script>
<div class="iDev">
<div class="q">
T <input type="radio" name="o0" id="t0" onclick="getFeedback()"/>
</div>
</div>
</div>
</body>
</html>
我的XSLT:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xhtml="http://www.w3.org/1999/xhtml"
xmlns="http://www.w3.org/1999/xhtml"
exclude-result-prefixes="xhtml">
<xsl:output method="html" indent="yes" encoding="UTF-8"/>
<xsl:strip-space elements="*" />
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="xhtml:div[@id='id8']" xmlns="http://www.w3.org/1999/xhtml">
<div id="id10" class="QT">
<xsl:apply-templates select="
(@*[local-name()!='id']
[local-name()!='class'])
| node()"/>
</div>
<script type="text/javascript">
<![CDATA[ // At this line it shows the syntax error
var numQuestions = 4;
var rawScore = 0;
var actualScore = 0;
function getAnswer()
{
}
function calulate()
{
}
]]>
</script>
</xsl:template>
<xsl:stylesheet>
感谢。