以文本方式查看主题

-  中文XML论坛 - 专业的XML技术讨论区  (http://bbs.xml.org.cn/index.asp)
--  『 DOM/SAX/XPath 』  (http://bbs.xml.org.cn/list.asp?boardid=11)
----  使用script + DOC 请教一个数据过滤的问题  (http://bbs.xml.org.cn/dispbbs.asp?boardid=11&rootid=&id=41210)


--  作者:xundeng
--  发布时间:12/14/2006 3:22:00 PM

--  使用script + DOC 请教一个数据过滤的问题
XML文件如下
<root>
<record>
   <value>1  </value>
   <Parent>ID333</Parent>
<record>
<record>
   <value>2  </value>
   <Parent>ID333</Parent>
<record>
<record>
   <value>3</value>
   <Parent>ID444</Parent>
<record>
</root>

我现在只想显示在网页中显示某些特定的记录 如<Parent>的值为ID333。请问有什么
办法返回的记录集只包含<Parent>的值为ID333的所有的Record的数据。
当前我是用循环来比较的,但是因为记录太多,上万条,速度太慢了。


--  作者:Qr
--  发布时间:12/14/2006 8:00:00 PM

--  
var obj = xmlDoc.selectNodes("//record[Parent='ID333']");

for(i=0;i<obj.length;i++){
document.write obj[i].childNodes[0].text +","+obj[i].childNodes[1].text
}

尽管selectNodes()只选择Parent='ID333'的record,但是,整个XML已经加载到DOM中,那么多记录,仍然消耗大量内存,速度还是...

DOM不适用于大型XML。


--  作者:xundeng
--  发布时间:12/15/2006 2:07:00 PM

--  
谢谢 
修改了之后速度快多了。因为现在是内网用的,速度还行
到外网可能就。。。。
对大型文件因为用什么来做??
--  作者:Qr
--  发布时间:12/17/2006 11:55:00 AM

--  
对于DOM,无论是在服务端还是客户端,处理大型的XML文档都不大合适,特别是客户端,还得借助网络的传输。

对于大型文件,还是用数据库好,检索后再以XML方式返回即可。


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