1 / 13
文档名称:

python处理xml (2).docx

格式:docx   大小:20KB   页数:13页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

python处理xml (2).docx

上传人:zxwziyou8 2022/4/15 文件大小:20 KB

下载得到文件列表

python处理xml (2).docx

文档介绍

文档介绍:首页
我的主页
相册
广场
消息 
私信
模板
设置
退出
关注此空间
相信爱情,认真生活。
心情,学****br/>2012-04-10 09:09
python简单XML操作
    # -*-元素中。
3. DOM
DOM是Document Object Model的简称,它是以对象树来表示一个XML文档的方法,使用它的好处就是你可以非常灵活的在对象中进行遍历。
4. 元素和结点
元素就是标记,它是成对出现的。XML文档就是由元素组成的,但元素与元素之间可以有文本,元素的内容也是文本。在minidom中有许多的结点,元素也属于结点的一种,它不是叶子结点,即它存在子结点;还存在一些叶子结点,如文本结点,它下面不再有子结点。
象 ,文档元素是catalog,它下面有两种元素:maxid和item。maxid用来表示当前最大的item的id 值。每一个item都有一个id属性,id属性是唯一的,在 NewEdit 中用来生成每个分类所对应的代码片段的XML文档名,因此不能重复,而且它是一个递增的值。item元素有一个caption子元素,用来表示此分类项的 名称,它还可以包含item元素。这样,就定义了一个树状XML结构,下面让我们看一看如果把它们读出来。
一、得到dom对象
>>> import
>>> dom = ('d:/')
这样我们得到了一个dom对象,它的第一个元素应该是catalog。
二、得到文档元素对象
>>> root =
这样我们得到了根元素(catalog)。
三、结点属性
每一个结点都有它的nodeName,nodeValue,nodeType属性。nodeName为结点名字。
>>>
u'catalog'
nodeValue是结点的值,只对文本结点有效。nodeType是结点的类型,现在有以下几种:
'ATTRIBUTE_NODE'
'CDATA_SECTION_NODE'
'COMMENT_NODE'
'DOCUMENT_FRAGMENT_NODE'
'DOCUMENT_NODE'
'DOCUMENT_TYPE_NODE'
'ELEMENT_NODE'
'ENTITY_NODE'
'ENTITY_REFERENCE_NODE'
'NOTATION_NODE'
'PROCESSING_INSTRUCTION_NODE'
'TEXT_NODE'
这些结点通过名字很好理解。catalog是ELEMENT_NODE类型。
>>>
1
>>>
1
四、子元素、子结点的访问
访问子元素、子结点的方法很多,对于知道元素名字的子元素,可以使用getElementsByTagName方法,如读取maxid子元素:
>>> ('maxid')
[<DOM Element: maxid at 0xb6d0a8>]
这样返回一个列表,由于我们的例子中maxid只有一项,因此列表也只有一项。
如果想得到某个元素下的所有子结点(包括元素),可以使用childNodes属性:
>>>
[<DOM Text node "\n ">, <DOM Element: maxid at 0xb6d0a8>, <DOM Text node "\n ">, <DOM Element: item at 0xb6d918>, <DOM Text node "\n ">, <DOM Element: item at 0xb6de40>, <DOM Text node "\n ">, <DOM Element: item at 0xb6dfa8>, <DOM Text node "\n">]
可以看出所有两个标记间的内容都被视为文本结点。象每行后面的回车,都被看到文本结点。从上面的结果我们可以看出每个 结点的类型,本例中有文本结点和元素结点;结点的名字(元素结点);结点的值(文本结点)。每个结点都是一个对象,不同的结点对象有不同的属性和方法,更 详细的要参见文档。由于本例比较简单,只涉及文本结点和元素结点。
getElementsByTagName可以搜索当前元素的所有子元素,包括所有层次的子元素。childNodes只保存了当前元素的第一层子结点。
这样我们可以遍历childNod