Преобразование XSLT через javascript Только для IE

В Microsoft Internet Explorer мы можем использовать компонент ActiveX Msxml2.DOMDocument.6.0

выполнить преобразование на основе xslt с помощью метода transformNode (). Мы можем загрузить xml

или xslt следующим способом:

var activeX = new ActiveXObject("Msxml2.DOMDocument.6.0");
activeX.load('webdirectories/xml/somefile.xml');

но можем ли мы загрузить xml, указав xml как строковую переменную вместо того, чтобы указывать

расположение файла xml? что-то вроде этого-

var xmlFileContents = '<?xml version="1.0"?><books> .... </books>';

person Ranjan Sarma    schedule 05.04.2012    source источник


Ответы (1)


Да, есть метод loadXML, который вы можете использовать, например

if (activeX.loadXML(xmlfileContents)) {
  // now you can access DOM here
}
else {
  // check activeX.parseError.reason and errorCode here
}
person Martin Honnen    schedule 05.04.2012
comment
пожалуйста, проверьте правильность приведенного ниже кода, сэр: var xmlString = '‹xml version =' 1.1 '....'; var activeX = newActiveXObject ('Msxml2.DOMDocument.6.0'); activeX.loadXML (xmlString)); activeX.transformNode (''); Будет ли работать приведенный выше код? Спасибо за вашу помощь. - person Ranjan Sarma; 05.04.2012
comment
Microsoft поддерживает только XML 1.0, поэтому убедитесь, что в вашем XML есть объявление XML с номером версии, который говорит <?xml version="1.0"?>, а не 1.1, как в вашем примере. И я намеренно показал, как проверить, успешно ли был проанализирован XML, поэтому следуйте этой строке кода, чтобы вы могли видеть любую ошибку синтаксического анализа, которую синтаксический анализатор может вам сообщить. И activeX.transformNode('') не будет работать, вам нужно передать узел DOM с кодом таблицы стилей. Также см. Документацию MSXML msdn .microsoft.com / en-us / library / windows / desktop /. - person Martin Honnen; 05.04.2012