免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: MayerCN
打印 上一主题 下一主题

发布PHP下的基于SAX模式的XML文档解析器及使用手册 [XmlParser v1.0] [复制链接]

论坛徽章:
0
11 [报告]
发表于 2006-09-12 09:28 |只看该作者
原帖由 MayerCN 于 2006-9-11 23:36 发表


其实你应该想想你采集的数据源为什么要采用这种方式来存储数据, 能为他们带来哪些益处, 而不是为能够盗取别人提供的"共享"的数据而窃喜

不太明白你父子节点的问题所指的是什么,  好好研究下, 或 ...

楼主理解错我的意思了,我说了不是小偷,是大盗!向盗个链什么的我根本不感兴趣,
是采集/整理/提取,google提供的是搜索服务,从某种意义来说就是互联网的小偷的祖师爷了。
只不过被偷的人很高兴,(也有不高兴的就不说了)
他搜索:大面积撒网,大颗粒,我们做定制服务,细加工,都是对网上信息的处理,好像不存在品质问题吧!
存贮问题,根本不在我的考虑范围内,因为没有什么技术含量,向现在我们公司用的我的偷天,从网页上
采集/提取出数据后根本就不用存储,直接就入数据库,数据库是别的同事以前做的,
那你会说:这就是存储了!不是,因为他的库结构我根本就不知到!那我是怎么入库的?
从他以前制作的录入页面,我把数据直接添冲到他的录入界面里,提交页面就ok了,什么有效性检查了,2次处理了,他页面上本来就写过了,我何必再写呢?你会问要是批量提交怎么办?既然我可以把数据填到页面里,自动提交当然也不难!
也就是说存贮是随具体的业务来制定的,到时候再说!
盗取别人提供的"共享"的数据这一点我不赞同,我们做技术的就像铁匠打刀,用刀的人是切菜还是杀人不是我们的责任,就像原子裂变核物理技术一样,
我们提供的是一种技术,一种服务器,如何用是客户实施的。采集的信息是否有真正拥有不允许采集的版权我们目前是无法判断的。
父子节点的问题:
首先说说目的,就是信息的定位,你如何定位你关心的数据呢?从固定结构呀/tagname和属性标识呀/
但也有一些不具备这些信息的怎么办?就是从上下文的父子节点关系来判断
举个例子:有一个

  1. ......
  2. <div id="xxx">
  3. .....
  4. <div>需要提取的数据</div>
  5. ....
  6. </div>
  7. .......
复制代码

的结构因为你可以定位div id="xxx"这个唯一标识,虽然你需要提取的数据的绝对位置不明显总算可以确定到一定的范围,而实际上网页上总有一些表现层上的数据,什么样式呀之类的东西是可以让你近一步定位的,这就是利用了父子节点的简单例子,说他简单是因为我们要提取的数据正好是在内部,顺序的,array就可以搞定了。向这样

  1. .........
  2. <div>需要提取的数据</div>
  3. .....
  4. <div>
  5. ........
  6. <div id="xxx">xxx</div>
  7. ......
  8. </div>
  9. ........
复制代码

需要提取的数据在外层,并且要定位只能通过下面内层的<div id="xxx">,因为array不能表示父子的追述,就不行了,很明显DOM就可以办到了。
具体实施应该不止一种方法,我现在考虑的也不成熟,总感觉要具体问题具体对待,
不过应该有几种比较固定的形式。

论坛徽章:
0
12 [报告]
发表于 2006-09-12 20:34 |只看该作者
你还是没明白我的意思, 我说的是应该想想别人是如何提供服务的


你可以研究数据结构中的树

XML文档其实就是一个树形结构, 由各个结点组成的一个树, 结点之间有相应的关系

在PHP里, 你用类的对象来存储结点, 就可以表达你想要的关系了

以前也想过用此种方式来做,  后来考虑到效率的问题放弃了,  感觉如果要做一个这样的还不如直接Dom.

论坛徽章:
0
13 [报告]
发表于 2006-09-13 10:07 |只看该作者
楼主,我用了你的这个解析器,但是乱码问题一直解决不了,很郁闷

我的运行环境是apache,设置的网页默认编码是GB2312,调用解析器的时候,已经按你的常见问题里所说的把网页的编码设为GB2312,而且也这样改了:
$hdc = new XmlParser('GB2312');
$hdc->_use_iconv = 1;
但是,读取一些网站的xml数据还是会乱码,请问该如何解决?

论坛徽章:
0
14 [报告]
发表于 2006-09-13 13:24 |只看该作者
原帖由 MayerCN 于 2006-9-12 20:34 发表
你还是没明白我的意思, 我说的是应该想想别人是如何提供服务的

..........
感觉如果要做一个这样的还不如直接Dom
在PHP里, 你用类的对象来存储结 ...

前提:不是我没有理解你的意思,如何提供服务是一件具体的事情,这里根本没法讨论,
讨论的只有我们已经知道的问题,正如你所说,感觉如果要做一个这样的还不如直接Dom,这是结症所在,我想和你探讨的就是
就是替代DOM模型,为什么替代,我想不用讨论了,我关心的是如果可以替代,怎么做,替代不了,就用
DOM了,就没有必要讨论下去了,DOM的运用是基础的知识问题,不用讨论。
如果你认为具体的事情事情可以在论坛这种环境下进行统一的讨论的话,我认为我们没有共识,没有必要讨论下去。
我口气僵硬,抱歉,但目的明确,技术本来就不是业务,不要业务那一套繁琐的东西。

论坛徽章:
0
15 [报告]
发表于 2006-09-13 16:44 |只看该作者
原帖由 achun.shx 于 2006-9-12 09:28 发表

楼主理解错我的意思了,我说了不是小偷,是大盗!向盗个链什么的我根本不感兴趣,
是采集/整理/提取,google提供的是搜索服务,从某种意义来说就是互联网的小偷的祖师爷了。
只不过被偷的人很高兴,(也有不高 ...


你说这些和楼主发布的 XML 解析工具没有任何关系。。。。。。

楼主的工具是一个 XML 文档解析工具,而你说的什么父子节点这些只不过网页上内容的关联关系。两者完全不搭界嘛!

[ 本帖最后由 dualface 于 2006-9-13 16:47 编辑 ]

论坛徽章:
0
16 [报告]
发表于 2006-09-13 17:44 |只看该作者
原帖由 dualface 于 2006-9-13 16:44 发表


你说这些和楼主发布的 XML 解析工具没有任何关系。。。。。。

楼主的工具是一个 XML 文档解析工具,而你说的什么父子节点这些只不过网页上内容的关联关系。两者完全不搭界嘛!

XML 文档解析是一项技术,技术是要用到具体的应用里面的,
我是感觉到楼主的应用(目的)方向了(也许错了),就是信息的采集/整理/提取
信息的采集/整理/提取必然会牵扯父子节点问题的

论坛徽章:
0
17 [报告]
发表于 2006-09-13 22:09 |只看该作者
原帖由 herolee 于 2006-9-13 10:07 发表
楼主,我用了你的这个解析器,但是乱码问题一直解决不了,很郁闷

我的运行环境是apache,设置的网页默认编码是GB2312,调用解析器的时候,已经按你的常见问题里所说的把网页的编码设为GB2312,而且也这样改了:
$hdc  ...



你是怎么使用的, 还有你的XML 文档是怎么样的

代码都帖出来看一下,  不然我也不好回答你

出现乱码主要是你的XML文档编码和你页面所使用的编码不一致造成的,  你可以参考手册中的例子来写程序

[ 本帖最后由 MayerCN 于 2006-9-13 22:28 编辑 ]

论坛徽章:
0
18 [报告]
发表于 2006-09-14 15:24 |只看该作者
原帖由 achun.shx 于 2006-9-13 17:44 发表

XML 文档解析是一项技术,技术是要用到具体的应用里面的,
我是感觉到楼主的应用(目的)方向了(也许错了),就是信息的采集/整理/提取
信息的采集/整理/提取必然会牵扯父子节点问题的


我知道你要采集网上的信息,问题的关键是网上的大部分信息都不是 XML 文档。既然不是 XML 文档,又怎么用楼主的工具来解析呢?

论坛徽章:
0
19 [报告]
发表于 2006-09-20 17:40 |只看该作者
楼上的问题
其实很好解决,网上虽然大多是html,但是xhtml是趋势,
并且PHP有Tidy库html转xhtml这个可以方便的完成了,这样我们就有了XML文档了。

论坛徽章:
0
20 [报告]
发表于 2006-09-20 21:34 |只看该作者
原帖由 achun.shx 于 2006-9-20 17:40 发表
楼上的问题
其实很好解决,网上虽然大多是html,但是xhtml是趋势,
并且PHP有Tidy库html转xhtml这个可以方便的完成了,这样我们就有了XML文档了。


xhtml 和 xml 可有本质区别。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP