以文本方式查看主题

-  中文XML论坛 - 专业的XML技术讨论区  (http://bbs.xml.org.cn/index.asp)
--  『 HTML/XHTML/Ajax/Web 2.0/Web 3.0 』  (http://bbs.xml.org.cn/list.asp?boardid=22)
----  JavaScript以及Xpath的使用问题,各位帮下忙  (http://bbs.xml.org.cn/dispbbs.asp?boardid=22&rootid=&id=84789)


--  作者:noreject
--  发布时间:5/17/2010 10:40:00 AM

--  JavaScript以及Xpath的使用问题,各位帮下忙
XML文件:
<x_server_response version="4.3.0 (548)">
<source_locate_response>
<source_full_info>
<source_info>
<source_internal_number>000005154</source_internal_number>
<source_001>02479</source_001>
<source_name>Bentham Science Journals</source_name>
<source_short_name>Bentham Science Journals</source_short_name>
<source_searchable_flag>N</source_searchable_flag>
</source_info>
<record xmlns="http://www.loc.gov/MARC21/slim"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.loc.gov/MARC21/slim
http://www.loc.gov/standards/marcxml/schema/MARC21slim.xsd">
<controlfield tag="001">BNU02479</controlfield>
<datafield tag="245" ind1="1" ind2=" ">
<subfield code="a">Bentham Science Journals</subfield>
</datafield>
<datafield tag="246" ind1="1" ind2=" ">
<subfield code="a">Bentham Science</subfield>
</datafield>
<datafield tag="210" ind1=" " ind2=" ">
<subfield code="a">Bentham Science Journals</subfield>
</datafield>
<datafield tag="856" ind1="4" ind2="1">
<subfield code="u">http://www.bentham-direct.org</subfield>
</datafield>
</record>
</source_full_info>
</source_locate_response>
</x_server_response>
我的JS抽取其中的
<datafield tag="856" ind1="4" ind2="1">
<subfield code="u">http://www.bentham-direct.org</subfield>
</datafield>
链接地址http://www.bentham-direct.org
代码:
var path="//datafield[@tag='856']/subfield/text()";
if(explore=='ie')
{zylj=xxtem.selectNodes(path);
}
else if(explore=='Firefox')
{
var oNSResolver=xxtem.createNSResolver(xxtem.documentElement);  
zylj =xxtem.evaluate(path,xxtem,oNSResolver,XPathResult.ANY_TYPE, null);
}
哪里有问题啊,取不回来那个链接地址,各位帮忙看下


--  作者:Qr
--  发布时间:5/19/2010 2:53:00 PM

--  
xxtem.setProperty "SelectionLanguage", "XPath" //加上这么一句就可以了!
--  作者:noreject
--  发布时间:5/20/2010 9:03:00 AM

--  
谢谢回复,完整的应该是这句吧xxtem.setProperty("SelectionLanguage", "XPath"); 我之前是用了的,不管用,后来看到其他地方不用,注释掉了,结果也还是不能用。麻烦看看其他地方是不是还有问题,我的XPath的那个查询式没有问题吧,反正就是出不来结果,再烦劳给看看
--  作者:Qr
--  发布时间:5/20/2010 12:26:00 PM

--  
以下是引用Qr在2010-5-19 14:53:00的发言:
xxtem.setProperty "SelectionLanguage", "XPath" //加上这么一句就可以了!


正解

var path="//datafield[@tag='856']/subfield/text()";
直接加text()不是好作法,firefox根本不认


--  作者:noreject
--  发布时间:5/21/2010 7:58:00 AM

--  
谢谢,我把这个给去掉了,也不行,看网上有人说要考虑命名域的问题,但是没有详细的说法,不知道Qr君是否知道。
--  作者:Qr
--  发布时间:5/21/2010 2:19:00 PM

--  
以下是引用Qr在2010-5-19 14:53:00的发言:
xxtem.setProperty "SelectionLanguage", "XPath" //加上这么一句就可以了!

sorry,以上是在VBS环境下使用,JAVASCRPPT环境下应用:xxtem.setProperty("SelectionLanguage", "XPath");
另外,取不到值是因为record的名字空间,具体暂没有好办法。


W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
9,078.125ms