当前位置: 首页 > 编程笔记 >

Python获取任意xml节点值的方法

佴英奕
2023-03-14
本文向大家介绍Python获取任意xml节点值的方法,包括了Python获取任意xml节点值的方法的使用技巧和注意事项,需要的朋友参考一下

本文实例讲述了Python获取任意xml节点值的方法。分享给大家供大家参考。具体实现方法如下:

# -*- coding: utf-8 -*-
import xml.dom.minidom
ELEMENT_NODE = xml.dom.Node.ELEMENT_NODE
class SimpleXmlGetter(object):
  def __init__(self, data):
    if type(data) == str:
      self.root = xml.dom.minidom.parse(data)
    else:
      self.root = data
  def __getattr__(self, name):    #support . operation
    if name == 'data':
      return self.root.firstChild.data
    for c in self.root.childNodes:
      if c.nodeType == ELEMENT_NODE and c.tagName == name:
        return SimpleXmlGetter(c)
  def __getitem__(self, index):    #support [] operation
    eNodes = [ e for e in self.root.parentNode.childNodes
          if e.nodeType == ELEMENT_NODE and e.tagName == self.root.tagName]
    return SimpleXmlGetter(eNodes[index])
  def __call__(self, *args, **kwargs): #support () openration, for query conditions
    for e in self.root.parentNode.childNodes:
      if e.nodeType == ELEMENT_NODE:
        for key in kwargs.keys():
           if e.getAttribute(key) != kwargs[key]:
            break
        else:
          return SimpleXmlGetter(e)
if __name__ == "__main__":
  x = SimpleXmlGetter("sysd.xml")
  print x.sysd.sysagent.param[2].data
  print x.sysd.sysagent.param(name="querytimeout", type="second").data

希望本文所述对大家的Python程序设计有所帮助。

 类似资料:
  • 在本章中,将学习如何获取XML DOM对象的节点值。 XML文档具有称为节点的信息单元的层次结构。 对象有一个属性 - ,它返回元素的值。 在以下部分中,将讨论学习 - 获取元素的节点值 获取节点的属性值 以下所有示例中使用的node.xml如下所示 - 1. 获取节点值 使用方法以文档顺序返回具有给定标记名称的所有元素的。 示例 以下示例(getnode example.html)将XML文档(

  • 一个节点就象征着一个数据,现在的或者未来的,它是一种预期,所以我们也对应的有获取即时值和获取未来值两种方式。 获取即时值 对于一个节点来说,访问T value属性是最简单有效的形式,但是由于空值,我们可能需要特殊注意一下: EZRMutableNode<NSNumber *> *node = [EZRMutableNode new]; NSNumber *value = node.value;

  • 问题内容: 我无法获取文本值,或者用。 我的XML就像 而且我正在尝试获取 标签 值(非文本元素提取工作正常)。我的Java代码听起来像 打印出来 谢谢您的帮助。 问题答案: 我还将打印出结果以用于调试。我的猜测是您的树爬网代码没有爬到您认为是的节点上。由于没有检查代码中的节点名称,这种怀疑得到了加强。 除此之外,Node的javadoc定义“ getNodeValue()”以为Element类型

  • 我有以下(很大= 我有一个文件,它定义了我要提取的字段及其路径: 因此,HotelName的路径是:。 现在我想了解每家酒店的信息。我无法为它们创建类(如这里),因为脚本必须是动态的,并且将传递具有不同定义文件的不同XML文件。 我如何通过使用路径来解决这个问题,没有类,内存使用率低(= //编辑:一切都已实现。我只需要一种方法来遍历酒店,并使用我拥有的路径获取它们的值。

  • 问题内容: 我有一个看起来像这样的xml: 在这里,我想检索类型为属性的“源类型”的值。 我曾这样尝试过,但无法正常工作: 我也尝试过这个: 请帮助我!! 在此先感谢Varsha。 问题答案: 由于您的问题较为笼统,请尝试使用Java中提供的XML解析器来实现。如果您特定于解析器,请在此处更新您尝试过的代码