使用XML存储在变量中的Javascript XSLT转换

时间:2012-04-23 12:44:34

标签: javascript jquery xml xslt

我需要在Javascript中使用XSLT转换XML字符串。虽然XSLT存储在自己的文件中,但XML是更大的XML文档的一部分,因此将其作为字符串存储在变量中。

我目前的解决方案如下:

xslt = document.implementation.createDocument("","",null);
xslt.async = false;
xslt.load('xslfile.xsl');

xml = document.implementation.createDocument("","",null);
// here I need to include the XML as it is in the document

xsltProc.importStylesheet(xslt);
xml_dom = xsltProc.transformToDocument(xml);
output += new XMLSerializer().serializeToString(xml_dom.documentElement);

当我将变量的内容保存到文件并按照我包含XSLT文件的方式包含它时,我得到了所需的输出(转换后的XML):

xml = document.implementation.createDocument("","",null);
xml.async = false;
xml.load('xmlinput.xml');

我需要一种方法将变量的内容包含在xml DOM文档中......还是有更优雅的方式?

提前致谢

2 个答案:

答案 0 :(得分:2)

使用Mozilla,Opera,Safari,Chrome和IE 9,你可以做到这一点。

var xml = new DOMParser().parseFromString(yourVar, 'application/xml');

将变量yourVar中的XML标记解析为XML DOM文档。

答案 1 :(得分:0)

您可以将XML存储在变量中并使用jQuery正常遍历它,我倾向于这样做:

window.auditDoc = $.parseXML("<?xml version='1.0' encoding='UTF-8'?><Bundle><Audit></Audit></Bundle>");

如果我正在使用单个xml文件进行大量工作,那么我也发现将它放在window.auditDoc中并始终将其引用为此非常有用。