2017-02-07 19 views
2

次のコード行を使用して、2つのドキュメントからXMLフラグメントを変換します。このコードはFirefoxとChromeでは問題なく動作しますが、Edgeで使用するときはいつでも、ヌル(SchemaStylesheetObjがXSLTprocessorオブジェクトです):XSLTProcessor.transformToFragment()はMicrosoftエッジでnullを返します

xmlFragment = SchemaStylesheetObj.transformToFragment(xmldoc, ownerDocument); 

私XMLDOC両方とのownerDocumentが、私は変換のために使用しています私のXSLTファイルの一部であり、以下、適切なtextContentsがあります

のownerDocumentがされ
<?xml version="1.0" encoding="UTF-8"?> 

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
      xmlns:xlink="http://www.w3.org/1999/xlink" 
      xmlns:exsl="http://exslt.org/common" 
      xmlns:func="http://exslt.org/functions" 
      xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" 
      xmlns:dyn="http://exslt.org/dynamic" 
      xmlns:saxon="http://icl.com/saxon" 
      xmlns:dtbl="http://docbook.sourceforge.net/dtbl" 
      xmlns:ptbl="http://nwalsh.com/xslt/ext/xsltproc/python/Table" 
      xmlns:stbl="http://nwalsh.com/xslt/ext/com.nwalsh.saxon.Table" 
      xmlns:xtbl="com.nwalsh.xalan.Table" 
      xmlns:lxslt="http://xml.apache.org/xslt" 
      xmlns:str="http://exslt.org/strings" 
      xmlns:msxsl="urn:schemas-microsoft-com:xslt" 
      xmlns:t="http://thresholds.data" 
      xmlns:lip="http://listItemPrefix.data" 
      xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 
      extension-element-prefixes="str" 
      version="1.0"> 
      .... 
      <xsl:output method="xml" indent="yes" omit-xml-declaration="yes" encoding="UTF-8"/> 
      <xsl:preserve-space elements="*" /> 

      <xsl:template name="debug_spec_version"> 
      <div class="debug_pane xslt_debug">Processed with 2361E v5.00 style sheet</div> 
      </xsl:template> 

     </xsl:stylesheet> 

次のlを使って生成されます伊根:

var ownerDocument = document.implementation.createDocument("", "test", null); 

XMLDOCは、次のような生成され、次のよう

var xmldoc = xmlparser.parseFromString(xmlContents, "text/xml"); 

xmlContentsの最初の数行は次のとおりです。

<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!--Arbortext, Inc., 1988-2013, v.4002-->\n<!DOCTYPE macwp PUBLIC \"-//USA-DOD//DTD MIL-STD-2361 TM Assembly REV E 5.0 20131101//EN\"\n \"production.dtd\">\n<?Pub Inc?>\n<macwp chngno=\"0\" wpno=\"A0002\">\n<wp.metadata><portionmark/>\n<proponent>\n<name></name>\n<address><city></city><state></state></address>\n</proponent>\n<tracking>\n<change.history>\n<author>\n<name>vansycke</name>\n<proponent>\n<name></name>\n<address><city></city><state></state></address>\n</proponent>\n</author> 

はどうすればこの問題を解決することができますか?

+0

どういう意味ですか?あなたはもっと具体的になりますか? –

+0

あなたはxmldocとownerDocumentの内容を見たいと思うのですか? –

+0

これで、XMLオブジェクトの内容を上げなければならないということを意味していました。申し訳ありませんが、興味のあるファイルには何が重要かわかりません。 –

答えて

0

私は最近EDGEとの互換性のあるアプリケーションを作成する際にこの問題に直面し、数時間後に解決策と根本原因を発見しました。

失敗したtransformToFragmentの根本原因は、あなたのスタイルシートで使用されている以下の名前空間です。

xmlns:exsl="http://exslt.org/common" 

この名前空間を削除して、私はこれがあなたの問題を解決することを願っています

xmlns:msxsl="urn:schemas-microsoft-com:xslt" 

を使用してください。

関連する問題