MS的xpath和w3c的不一样??

fason 2004-08-06 01:49:22
<script>
var d = new ActiveXObject("Microsoft.XMLDOM");
d.loadXML("<root><Item text=\"0\"/><Item text=\"1\"/></root>");
alert(d.selectSingleNode("/root/Item[1]").getAttribute("text"));
</script>

mozilla下的/root/Item[1]是第一个Item,这与w3c的是一致的,ms的怎么是返回第二个Item??

...全文
142 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
sinolge 2004-08-19
  • 打赏
  • 举报
回复
up
dsclub 2004-08-19
  • 打赏
  • 举报
回复
阿信真的强啊
超级大笨狼 2004-08-11
  • 打赏
  • 举报
回复
<html>
<head>
<style>
table
{
border-collapse: collapse;
border-width: 4;
border-style: double;
border-color:#15336F;
font-size:12px;
}
body
{
font-size:12px;
}
div
{
width:100%;
height:9;
border-style:solid;
border-width:1;
border-color:#eeeeee;
vertical-align:top;
font-size:12;
cursor:hand;
}
</style>
<title>笨狼树状节点查看器</title>
</head>
<body>
<INPUT type="file" id=file1 name=file1>请输入xml文件路径
<INPUT type="button" value="确定" onclick = "vbs:analyse ">
<SELECT id="select1" onchange="vbs:analyse">
<OPTION value="nodeName" >显示标签</OPTION>
<OPTION value="text" >显示文字</OPTION>
<OPTION value="attribute" >显示属性</OPTION>

<OPTION value="XPath" >显示XPath</OPTION>
</SELECT>
<DIV id="oList" style="padding-left:0"></DIV>

</body>
<script language="vbScript" >
'**************************************
'****作者: 超级大笨狼 superdullwolf****
'**************************************

public dic,favour,anything ,doc

set doc = CreateObject("Microsoft.XMLDOM")
doc.async=False
sub analyse()
dim myTR
favour = select1.value
removeDIV
if not doc.load(file1.value) then
alert "文件加载失败,请检查文件是否存在!"
else
Set rootNode = doc.DocumentElement
set rootDIV = document.createElement("DIV")

oList.setAttribute "XPath",rootNode.nodeName
oList.setAttribute "parsed",false
appendDIV oList,rootNode


end if
end sub

sub appendDIV(myDIV,myNode)

dim myChild ,newDIV,ChildID,thisID
ChildID = 0

for each myChild in myNode.childNodes
set newDIV = document.createElement("DIV")
myDIV.appendChild newDIV

addPx newDIV, myDIV,10

if ChildID>0 then
if myChild.previousSibling.nodeName <> myChild.nodeName then
ChildID =0

end if
end if

newDIV.setAttribute "XPath",getXPath(myDIV,myChild.nodeName,ChildID)
newDIV.setAttribute "parsed",false

newDIV.title = newDIV.getAttribute("XPath")
newDIV.innerText = getText(myChild,newDIV)

if myChild.childNodes.length>0 then
if myChild.nodeName <> "#text" then
newDIV.attachEvent "onclick",GetRef("attachOnclick")
end if
end if
ChildID = ChildID + 1




next
myDIV.setAttribute "parsed",true
end sub

function getXPath(myDIV,name,index)
getXPath = myDIV.getAttribute("XPath") & "/" & name & "[" & index & "]"

end function

sub removeDIV()
dim oldDIV
for each oldDIV in oList.childNodes
oldDIV.removeNode(true)
next
end sub

sub attachOnclick()
dim obj ,nodeXPath
set obj=window.event.srcElement
nodeXPath = obj.getAttribute("XPath")
if instr(nodeXPath,"#") then
window.event.cancelBubble = true
exit sub
end if
if not obj.getAttribute("parsed")= true then
appendDIV obj ,doc.selectSingleNode(nodeXPath)
end if
window.event.cancelBubble = true

end sub

function getText(myNode,oDIV)
dim myAttribute
getText = ""
select case favour
case "text"
if not isnull(myNode.text) then
getText = myNode.text
else
getText = "空文字"
end if
case "nodeName"
getText = myNode.nodeName
case "attribute"
if myNode.nodeName <>"#text" then
for each myAttribute in myNode.attributes
getText =getText & myAttribute.name
getText = getText & "=" & chr(34)
getText = getText & myAttribute.value & chr(34) & " "
next
getText = trim(getText)
end if


case "XPath"
getText = oDIV.title
end select
if trim(getText) ="" then getText ="空"
end function

sub addPx(newDIV,oldDIV,num)
dim re,myString
set re = new RegExp
re.Global = true
re.Pattern = "[^\d]*"
myString = re.Replace(oldDIV.style.paddingLeft, "")
if myString ="" then myString = "0"
myString = (cint(myString) + num ) & "px"
newDIV.style.paddingLeft = myString
set re = nothing
end sub
</script>
</html>
fason 2004-08-09
  • 打赏
  • 举报
回复
有一个方法...
objDOM.setProperty("SelectionLanguage","XPath");

解决
W3China 2004-08-07
  • 打赏
  • 举报
回复
MS一向不服从W3C的,自己想怎么做就怎么做。。

ice_berg16 2004-08-07
  • 打赏
  • 举报
回复
啊信怎么改名了
fason 2004-08-06
  • 打赏
  • 举报
回复
那怎么兼容啊...
fason 2004-08-06
  • 打赏
  • 举报
回复
MSXML3才符合啊~~~~,晕掉了....
孟子E章 2004-08-06
  • 打赏
  • 举报
回复
ms xml3 sp4已经符合w3c的标准了

The MSXML 3.0 release supports every existing XSL Transformations (XSLT) and XML Path Language (XPath) feature included in the current standards.
fason 2004-08-06
  • 打赏
  • 举报
回复
up
about ado ado ajax asp aspnet browsers careers css dhtml dotnetmobile dtd e4x example hosting html html5 htmldom i js media msnet php quality quiz rdf rss schema search semweb site smil soap sql svg tags tcpip tiy vbscript w3c wap web webservices wmlscript wsdl xforms xhtml xlink xml xmldom xpath xquery xsl xslfo 解决CHM打开后提示”地址无效”"已取消到该网页的导航”: (1)在所下载的chm文件上 单击右键-属性-解除锁定-确定 再次打开问题即可解决 (2)二:是因为文件所处的路径名中含有#这样的字符的缘故。
因为上次WINDOWS XP2做了UPDATE之后就无法打开chm的帮助文件了....想来想去也无法解决..
今天上来问..
CALLCALL朋友给我提供方法也是无法解决..之后我去了官方查找原因..终于找出问题了!!
现在把他分享出来,希望有碰到跟我一样的情况下的朋友可以有所帮助!!
症状
安装安全更新 896358 或 890175 后,可能会遇到下列一个或多个症状: • 某些类型的基于 Web 的程序可能无法正常运行。例如,HTML 帮助中的目录可能不再起作用。
• 从远程位置打开 .chm 文件时,某些 HTML 帮助功能可能不起作用。例如,“相关主题”功能可能不起作用。
打开CHM后里面的内容全部不可见...就像我们常见的404错误一样!
注意:本文包含以下 Microsoft 知识库文章的补充信息:
896358 (http://support.microsoft.com/kb/896358/) MS05-026:HTML 帮助中的漏洞可能允许远程执行代码
890175 (http://support.microsoft.com/kb/890175/) MS05-001:HTML 帮助中的漏洞可能允许代码执行
安装这些安全更新后会出现这些症状是预料之中的。本节为必须对关键业务程序重新启用 HTML 帮助 ActiveX 控件的管理员提供了一些示例。这些替代方法可能会危及计算机,使之更容易遭受上述安全更新所克制的威胁。最安全的做法是不要使用注册表替代方法。如果必须使用替代方法,请尽可能严格地设置注册表值。
因为CHM有存在此上漏洞!!所以更新之后会出现像我那种情况!
解决方案:
将以下文本粘贴到文本编辑器(如记事本)中。然后用 .reg 文件扩展名保存该文件导入注册表.(注意先备份注册表)。
CODE:[Copy to clipboard]REGEDIT4
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\HTMLHelp]
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\HTMLHelp\1.x\HHRestrictions]
"UrlAllowList"="\\\\productmanuals\\helpfiles;http://www.wingtiptoys.com/help/"
另外微软自己的网站上也有类似的说明,网址是http://support.microsoft.com/kb/902225/zh-cn
它给的解决方法是引用
为最终用户提供的解决方案
警告:如果提示从网站打开或保存 .chm 文件,则仅在需要此文件且信任提供此文件的网站的情况下进行此操作。
在“文件下载”对话框中,单击“保存”,然后选择要保存此 .chm 文件的位置。然后,使用下面的方法之一:
方法 1
1. 双击此 .chm 文件。
2. 在“打开文件安全警告”对话框,单击以清除“打开此文件前始终询问”复选框。
3. 单击“打开”。
方法 2
1. 右键单击该 CHM 文件,然后单击“属性”。
2. 单击“取消阻止”。
3. 双击此 .chm 文件以打开此文件。

8,906

社区成员

发帖
与我相关
我的任务
社区描述
XML/XSL相关问题讨论专区
社区管理员
  • XML/XSL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧