为什么" XSLT8690:XSLT处理失败"处理本地XML + XSLT时 [英] Why "XSLT8690: XSLT processing failed" when processing local xml + xslt

查看:1216
本文介绍了为什么" XSLT8690:XSLT处理失败"处理本地XML + XSLT时的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

广泛的研究并没有使我理解为什么会发生如下 - 我希望SO社会可以帮助...

我复制在<一个提到的文件href=\"http://stackoverflow.com/questions/10457111/why-html1113-document-mode-restart-from-ie9-standards-to-quirks\">Why HTML1113:从IE9标准文档模式重启怪癖到本地文件系统和IE9打开XML(通过指定路径 D:\\ ... 在url栏)。结果
出人意料的是,该行为是无法打开网页版完全不同。结果
现在,我可以理解,我的电脑区域设置从Internet区域的人不同的解释下面提到的弹出窗口,但我不明白,为什么结果是不同的,为什么不是自动选择怪癖模式,就像是完成时在网络上开放的XML。

当我打开本地文件,我得到以下内容:

这无疑是由本地区域设置造成的。接下来,浏览器模式是IE9(不是自动怪癖正如前面)和它应用XSLT失败:

首先,我认为这是由MSXML6 DOM的基本设置,如 AllowXsltScript 引起了不被设置为true,但我不知道任何更多的,因为它的所有作品OK打开Web版本时。结果
那么,为什么当地的一个出现故障?

更奇怪的是,打开Web版本导致自动怪癖模式和正确的结果,但是当我切换到怪癖模式为本地文件,它失败了MSXML6 DOM对象 - 其实这更有意义对我来说比任何错误,因为怪异模式可能只提供MSXML3(或只提供了 - 但为什么在网络的版本是自动怪癖OK)。

在接受邀请后,它将变为

现在,再次选择IE9标准模式时,我得到

和结果的预期

使用本地文件时背诵的事件(除了区设置差异):


  1. IE9标准模式XSLT8690误差

  2. 切换到Quirks模式错误

  3. 切换回标准IE9模式现在是确定

(从因区域设置的差异除外)打开网页版本时背诵的事件


  1. 自动怪癖模式

  2. 页面打开正确的怪癖 - 显然MSXML6仍在这里使用的自动怪癖模式

  3. 切换到IE9标准模式也没关系

  4. 返回怪癖模式错误如上(参数不正确)

是什么原因造成这些奇特的区别在哪里?


解决方案

这一次我花了一些时间,但我知道了!

保罗Sweatte的评论使我有很多已经绘制,而且一些未知的水域,但最终我开始与IE9我的电脑区域安全设置,直接通过注册表进行试验,唉无济于事,直到我.....看着再次Internet选项弹出窗口,发现有不止一个地方的安全设置可更新.....

通过IE9的相关设置所有无区散步,我选择了高级选项卡,并在遇到安全第一个有前途未选中之一:

允许活动内容在文件中我的计算机上运行

更改它(在这种情况下选中)需要重新启动,但是当我这样做,并重新打开我的本地XML文件,它突然表现为网络人做了:它打开在怪癖模式正确。另外,在切换到IE9标准模式,并返回到特殊模式,得到相同的行为的网络之一。同时弹出警告关于脚本通常是安全的是不存在了。

所以这就是为什么出现 XSLT8690 错误:XSLT,或者只是在那里的JavaScript被认为是活动内容

故事结束了?结果
对于这个问题,是的,但我仍然不知道为什么自动怪癖模式是确定的,但手动选择怪癖不是。结果
我怀疑,在第一次运行时自动切换到怪癖发生之前,在那个时候,因为结果页面已经提供了MSXML6不需要再对XSLT处理。但是,当你打开怪癖模式的XML,那么它试图执行怪癖模式的XSLT和不能因为现有的MSXML3,而不是MSXML6。的

Extensive research did not lead me to understanding why the below happens - I hope that the SO community can help...

I copied the files mentioned in Why HTML1113: Document mode restart from IE9 Standards to Quirks to local filesystem and opened the xml in IE9 (by specifying the path D:\... in the url bar).
Surprisingly, the behavior is quite different from opening the web version.
Now I can understand that "My Computer" zone settings differing from Internet zone ones explain the pop-up windows mentioned below, but I don't understand why the result is different and why quirks mode is not automatically chosen, just like was done when opening the xml on the web.

When I open the local file, I get the following:

which no doubt is caused by a local zone setting. Next, the browser mode is IE9 (not auto quirks as earlier) and it fails on applying the XSLT:

First I thought that this was caused by MSXML6 DOM basic settings like AllowXsltScript not being set to true, but I am not sure about that any more, because it all works OK when opening the web version.
So why does the local one fail?

Stranger still, opening the web version led to auto quirks mode and correct result, but when I switch to quirks mode for the local file, it fails on the MSXML6 DOM object - actually this makes more sense to me than no error, because quirks mode probably only offers MSXML3 (or should only offer that - but then why was auto quirks in web version OK?).

After accepting, it changes to

Now, when selecting IE9 standards mode again, I get

and the result is the expected

Reciting events when using local files (apart from zone setting differences):

  1. IE9 standards mode XSLT8690 error
  2. Switching to quirks mode errors
  3. Switching back to IE9 standards mode is OK now

Reciting the events when opening the web version (apart from differences due to zone settings):

  1. quirks mode automatically
  2. page opens correctly in quirks - apparently MSXML6 is still used here in the auto quirks mode
  3. switch to IE9 standards mode is OK too
  4. Back to quirks mode errors as above ("The parameter is incorrect'")

What is causing all these peculiar differences?

解决方案

This one took me some time but I've got it!

Paul Sweatte's comments led me to a lot of already charted but also to some uncharted waters, but eventually I started experimenting with IE9 My Computer zone security settings directly via the registry, alas to no avail, until.....I looked at the Internet Options popup window again and noticed that there's more than one place where security settings may be updated .....

Walking through all none-zone related IE9 settings, I selected the "Advanced" tab and encountered a promising unchecked one in the security subsection:

Allow active content to run in files on My computer

Changing it (in this case to checked) requires a restart but when I did and reopened my local xml file, it suddenly behaved as the web one did: it opened in quirks mode correctly. Also, switching to IE9 standards mode and back to quirks mode gave the same behaviour as for the web one. Also the popup warning about "scripts usually being safe" was not there anymore.

So that explains why the XSLT8690 error occurs: xslt, or maybe just javascript in there is considered to be active content.

End of story?
For this question yes, but I still wonder why auto quirks mode is OK but manually selected quirks is not.
I suspect that at the first run the xslt is processed before the auto switch to quirks takes place, and at that time the MSXML6 is not needed anymore because the result page is already available. But when you open the xml in quirks mode, then it tries to execute the xslt in quirks mode, and can't because of the available MSXML3 instead of MSXML6.

这篇关于为什么&QUOT; XSLT8690:XSLT处理失败&QUOT;处理本地XML + XSLT时的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆