免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 5816 | 回复: 10
打印 上一主题 下一主题

python用sax 包来解析xml 的问题 请指教 急 多谢 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-11-09 11:09 |只看该作者 |倒序浏览
20可用积分
我想用sax包来解析xml, 要求如下:
[code=Python]
<?xml version="1.0" encoding="UTF-8"?>
<waf>
        <policy> acl </policy>
    <prot>
                <dstip>2.2.2.2</dstip>
                <dstip>3.3.3.3</dstip>
                <dstport>80</dstport>
                <srcip>3.3.3.3</srcip>
                <srcport>8888</srcport>            
                <protocol>17</protocol>
        </prot>
    <other haha="google.com" test_case_id="1" >
        <action>0</action>
        <dstip>33333333</dstip>
        <res>0</res>
        <res a="b" b="2" >0</res>
        <res a="c" b="3" c="4" >88</res>
        <res a="b" b="2" >0</res>
        
    </other>
    <other heihei="google.com" test_case_id2="2" >
        <res a="b" b="2" >0</res>
    </other>
    <other heihei3="baidu.com" test_case_id3="3" >
        <res a="c" b="3">88</res>
        <dd gg = "pengwei" >wpw</dd>
    </other>   
    <m>
            <w>
                    <dd gg = "dongmei" >wpw</dd>
            </w>
    </m>
    <rule ID="18612269" value="\x22" />
</waf>
[/code]
需求:
1, 返回某个特定标签下的所有attr 如ther标签有多个,我只想返回第二个other标签下的所有标签
2, 取出某个特定标签下的某个子标签的标签属性和标签值,如:取出第一个other标签下的第三个res的attr属性和标签值

请指教 多谢~

论坛徽章:
0
2 [报告]
发表于 2009-11-09 14:17 |只看该作者

回复 #1 power0811 的帖子

有人能指教一下么 多谢

论坛徽章:
0
3 [报告]
发表于 2009-11-09 14:19 |只看该作者
循环遍历然后找到需要的,就OK了吧。

论坛徽章:
0
4 [报告]
发表于 2009-11-09 14:41 |只看该作者

回复 #3 ziggler 的帖子

问题是每次sax都调用startElement 我要做到通用 没办法来限定某一个特定标签下的子标签值, 除非对象要多次实例化 这样十分不好

论坛徽章:
0
5 [报告]
发表于 2009-11-09 15:46 |只看该作者
你可以试下其他包,或许会方便点。

或者你直接dom操作把,就这么一个文件,效率没问题的。

论坛徽章:
0
6 [报告]
发表于 2009-11-09 15:49 |只看该作者

回复 #5 smallfish_xy 的帖子

请问 sax方法有取出某个指定标签的名称的方法么?
譬如上面得xml文件 我想取出prot标签下面得所有子标签的名称, 也就是:dstip等这些名称 该怎么做呢
我不知道sax的接口都有哪些.有中文文档可以让我看一下么 多谢

论坛徽章:
0
7 [报告]
发表于 2009-11-09 15:51 |只看该作者

回复 #6 power0811 的帖子

看API中有没有这种方法就OK了。

论坛徽章:
0
8 [报告]
发表于 2009-11-09 15:59 |只看该作者
sax用在无状态遍历处理的时候方便,
按照你的需求,要去第几个元素的需求。 用dom处理吧。

论坛徽章:
0
9 [报告]
发表于 2009-11-09 16:09 |只看该作者

回复 #8 bohemia 的帖子

也就是说sax没有提供这种功能的借口对么?

论坛徽章:
0
10 [报告]
发表于 2009-11-09 16:10 |只看该作者

回复 #7 ziggler 的帖子

从哪里看它的api呢 有没有中文的 我英文不好
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP