我有以下代码应用XSLT样式
Test.Xml.xslTransform = function(xml, xsl) {
try {
// code for IE
if (window.ActiveXObject) {
ex = xml.transformNode(xsl);
return ex;
}
// code for Mozilla, Firefox, Opera, etc.
else if (document.implementation && document.implementation.createDocument) {
xsltProcessor = new XSLTProcessor();
xsltProcessor.importStylesheet(xsl);
resultDocument = xsltProcessor.transformToFragment(xml, document);
return resultDocument;
}
} catch (exception) {
if (typeof (exception) == "object") {
if (exception.message) {
alert(exception.message);
}
} else {
alert(exception);
}
}
Run Code Online (Sandbox Code Playgroud)
该代码适用于IE和Firefox,但不适用于Chrome和Safari.有什么想法吗?
更新
ResultDocument = xsltProcessor.transformToFragment(xml, document);
Run Code Online (Sandbox Code Playgroud)
上面的行返回null.没有错误被抛出.
更新
由于xslt文件包含xsl:include,因此代码无效.需要找到一种方法来使包含工作我将在此处粘贴进度
更新
我建议使用http://plugins.jquery.com/project/Transform/插件.我正在尝试使用客户端libary作为include的示例( …
我有一个XML文件,我想使用XSL文档转换,但我似乎无法使它工作连上最新可用的Android版本.
我尝试<?xml-stylesheet/>在xml中添加一个标签,但这在本机浏览器或Dolphin Browser中都不起作用.
例如:
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="style.xsl"?>
<xmldata>Hello world</xmldata>
Run Code Online (Sandbox Code Playgroud)
和
<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns="http://www.w3.org/1999/xhtml" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/xmldata">
<em><xsl:value-of select="/xmldata"/></em>
</xsl:template>
</xsl:stylesheet>
Run Code Online (Sandbox Code Playgroud)
应该产生斜体,其中它在大多数桌面浏览器(Chrome浏览器已是确保当文件不在本地磁盘上它只能恼人的共享脚本根策略.)但它不会在手机浏览器工作.
有没有办法将转换脚本发生在客户端,或者是服务器端唯一的选择?
谁能告诉我是否有办法在客户端使用Javascript或JQuery进行XML/XSLT转换,这种方式适用于所有主流浏览器?(Chrome,Safari,Firefox和IE)?谢谢.