以文本方式查看主题

-  中文XML论坛 - 专业的XML技术讨论区  (http://bbs.xml.org.cn/index.asp)
--  『 DOM/SAX/XPath 』  (http://bbs.xml.org.cn/list.asp?boardid=11)
----  请问有模糊查询的例子吗?谢谢  (http://bbs.xml.org.cn/dispbbs.asp?boardid=11&rootid=&id=31965)


--  作者:wangli6777
--  发布时间:5/9/2006 12:12:00 PM

--  请问有模糊查询的例子吗?谢谢
各位大虾,请帮帮忙,急啊!!

我现在想对XML文档查询用ASP+DOM实现模糊查询,不知道怎么办,请各位大虾,指出一个简单的例子,谢谢!!!


--  作者:Qr
--  发布时间:5/11/2006 10:03:00 AM

--  
在DOM中加入XSL查询的功能,js代码:
xmlDom.setProperty("SelectionLanguage","XPath");//这一行在MSXML4不用,但4以下版本须加此行代码

oNodeList = xmlDom.getElementsByTagName("mail[contains(@mailid,'com')");//此行代码表示,返回名为mail的元素,条件是,其属性mailid中含有字符串com(至于这个串在mailid的任意位置不限),只要使用得当,结合XSL可以变化出不同查询语句,效果不错。

建议使用此法,当然也可用js代码遍历,不过有点烦,没有以上简明。


--  作者:wangli6777
--  发布时间:5/12/2006 8:26:00 AM

--  
非常感谢你的指点,因为我的系统没只用到ASP JS XML 格式的数据,没有用到xsl,因为我初学,不太懂,能不麻烦你帮我写一小段代码。xml 是这样的,通过ASP去查询它。点“搜索“在另一个页面显示查询结果。谢谢,等待你的回音!

<booksinfo>
<books id ="1" price="sprice">计算机操作系统</books>
<books id ="2" price="sprice">计算机程序设计</books>
</boksinfo>


--  作者:wangli6777
--  发布时间:5/12/2006 2:02:00 PM

--  
<html>
<head>
<title>不刷新页面查询的方法</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>
<script language="javascript">
function findgoods(){
com=window.findcontent.value; 
var xmlDom = new ActiveXObject("Msxml2.DOMDocument");
xmlDom.async = false;
xmlDom.load("chaxiu.xml");  
xmlDom.setProperty("SelectionLanguage","XPath");
var oNodeList = xmlDom.getElementsByTagName("name[contains(@id,com)");
For i=0 To oNodelist.length-1
names=names & oNodelist.item(i).firstChild.nodeValue & vbCrilf
Next
Msgbox names
}
</script>
<body bgcolor="#FFFFFF" text="#000000" onLoad="">
<table width="80%" border="0">
<TR>
    <TD align=center valign="top"><strong>搜索书籍
      <SELECT id=kind name=kind style="FONT-SIZE: 12px;width:150px">
            <OPTION value="">所有类别</OPTION>
                      </SELECT>
      </strong>
        <INPUT type="text" name="findcontent" onfocus=javascript:this.select() onmouseover=javascript:this.focus() size=10 style="BACKGROUND-COLOR: #ffffff; FONT-SIZE: 12px; WIDTH: 150px" value=请输入书名>
        <INPUT name="submitt" type=image src="http://images.joyo.com/i/img_btn__search_fhb.gif" alt=查询 align="middle" width=27 height=18 border=0 onClick="javascript:findgoods()">
    </td>
  </TR>

</table>


xml代码:
<?xml version="1.0" encoding="gb2312"?>
<books>


 <name id ="111"> 计算机一上</name>


 <name id ="111"> 计算机二上</name>


</books>

我跟据你的思路写了这个程序,但有错误,想请问我这样想写思路对吗?谢谢


--  作者:Qr
--  发布时间:5/13/2006 6:31:00 PM

--  
<html>
<head>
<title>不刷新页面查询的方法</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>
<script language="javascript">
function findgoods(){
com=window.findcontent.value; 
var xmlDom = new ActiveXObject("Msxml2.DOMDocument");
xmlDom.async = false;
xmlDom.setProperty("SelectionLanguage","XPath");
xmlDom.load("chaxiu.xml");  
var oNodeList = xmlDom.selectNodes("//name[contains(text(),'"+com+"')]");//一时间也没明白为什么用getElementsByTagName会出错,以前写过类似的代码是没问题的。
alert(oNodeList(0).xml)

/*
For i=0 To oNodelist.length-1
names=names & oNodelist.item(i).firstChild.nodevalue & vbCrilf
Next
Msgbox names
*/
}
</script>
<body bgcolor="#FFFFFF" text="#000000" onLoad="">
<table width="80%" border="0">
<TR>
    <TD align=center valign="top"><strong>搜索书籍
      <SELECT id=kind name=kind style="FONT-SIZE: 12px;width:150px">
            <OPTION value="">所有类别</OPTION>
                      </SELECT>
      </strong>
        <INPUT type="text" name="findcontent" onfocus=javascript:this.select()

onmouseover=javascript:this.focus() size=10 style="BACKGROUND-COLOR: #ffffff; FONT-SIZE: 12px;

WIDTH: 150px" value=请输入书名>
        <INPUT name="submitt" type=image src="http://images.joyo.com/i/img_btn__search_fhb.gif" alt=查询 align="middle" width=27 height=18 border=0 onClick="javascript:findgoods()">

    </td>
  </TR>

</table>


--  作者:wangli6777
--  发布时间:5/14/2006 9:04:00 AM

--  
非常感谢你的帮忙,不好意思,还有个问题想请问你,就是显示部分:
alert(oNodeList(0).xml)  ,我想把它改成用一个循环显示所有满足条件的结点,但只显示它的两个属性。如这样的效果:

中文Windows98应用基础教程(中等职业学校计算机系列规划教材)  ¥16.80

Solaris系统编程/Sun公司核心技术丛书                                       ¥83.10

Red Hat Linux9系统与网络管理教程                                          ¥29.40

最好是显示是另外一个页面上,麻烦版主你帮帮忙。

xml代码:
<?xml version="1.0" encoding="gb2312"?>
<books>
<name  nameid ="中文Windows98应用基础教程(中等职业学校计算机系列规划教材">     sprice="¥16.80 "
............

</books>


谢谢


--  作者:wangli6777
--  发布时间:5/14/2006 9:07:00 AM

--  
最好是用一个网页的表格显示,因为我打算在每条结果上面实现超连接。

中文Windows98应用基础教程(中等职业学校计算机系列规划教材)

Solaris系统编程/Sun公司核心技术丛书                                       

Red Hat Linux9系统与网络管理教程    


我试过用数组,可是没成功,有错误。


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