python dom解析xml

我的xml我截取了一段:<resources><stringname="application_name">Browser</string><stringname="ch... 我的xml 我截取了一段:

<resources>
<string name="application_name">Browser</string>
<string name="choose_upload">Choose file for upload</string>
<string name="uploads_disabled">File uploads are disabled.</string>
<string name="delete_bookmark_warning">Delete bookmark \"
<xliff:g id="bookmark">%s</xliff:g>\"?
</string>
<string name="contextheader_folder_bookmarkcount">
<xliff:g id="bookmark_count">%d</xliff:g> bookmarks
</string>
<string-array name="pref_content_plugins_values" translatable="false">
<item>ON</item>
<item>ON_DEMAND</item>
<item>OFF</item>
</string-array>
</resources>
我要吧里面的文字提取出来。
我的自己写了个简单的程序
1 # -*- coding:utf-8- -*-
2 from xml.dom.minidom import parse
3 import xml.dom.minidom
4
5 DOMTree = xml.dom.minidom.parse("strings_english.xml")
6 resources = DOMTree.documentElement
7
8 strings = resources.getElementsByTagName("string")
9
10 for string in strings:
11 print "%s\n" %string.childNodes[0].data
我可以提取出<string>之间的文字。但是提取到我上面截取的第二个有<xliff:g>节点的地方时报错了,因为文字在<xliff:g></xliff:g>后面。报错是AttributeError: Element instance has no attribute 'data'。该怎么改呢。而且我想提取<xliff:g></xliff:g>之间的文字,但是这个节点名有冒号,要怎么提取。
还有就是有一个<string-array>节点,这个节点和<string>都是resources的字节点,我该在程序的哪里加遍历这个字节点的地方呢,我试了好多地方都不行。
有点麻烦,回答了我还会追加的,谢谢。
展开
 我来答
sunhk_25
2014-08-04 · TA获得超过1123个赞
知道小有建树答主
回答量:497
采纳率:50%
帮助的人:362万
展开全部
应该是你的XML文件结构有问题。
把<resources>改为:

<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
更多追问追答
追问
恩,我仔细看了下,是有问题,改了就好了。那么我想提取节点应该怎么提取呢。
追答
import xml.dom.minidom
from xml.dom.minidom import parse
from xml.dom import minidom, Node 
DOMTree = xml.dom.minidom.parse("strings_english.xml")
resources = DOMTree.documentElement

strings = resources.getElementsByTagName("string-array")
for string in strings:
    for s in string.childNodes:
        #只读取元素:元素element=1,属性attr=2,文本text=3,注释comments=8,文档document=9
        if s.nodeType == Node.ELEMENT_NODE:
            print s.firstChild.data
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式