当前位置: 首页 > 面试题库 >

使用Python minidom读取XML并遍历每个节点

荀辰钊
2023-03-14
问题内容

我有一个如下所示的XML结构,但规模更大:

<root>
    <conference name='1'>
        <author>
            Bob
        </author>
        <author>
            Nigel
        </author>
    </conference>
    <conference name='2'>
        <author>
            Alice
        </author>
        <author>
            Mary
        </author>
    </conference>
</root>

为此,我使用了以下代码:

dom = parse(filepath)
conference=dom.getElementsByTagName('conference')
for node in conference:
    conf_name=node.getAttribute('name')
    print conf_name
    alist=node.getElementsByTagName('author')
    for a in alist:
        authortext= a.nodeValue
        print authortext

但是,打印出来的作者文本为“无”。我尝试使用下面的变体来摆弄,但这会导致程序中断。

authortext=a[0].nodeValue

正确的输出应为:

1
Bob
Nigel
2
Alice
Mary

但是我得到的是:

1
None
None
2
None
None

关于如何解决这个问题有什么建议吗?


问题答案:

authortext的类型为1(ELEMENT_NODE),通常您需要TEXT_NODE获取一个字符串。这会工作

a.childNodes[0].nodeValue


 类似资料:
  • 问题内容: 在Python中,如何读取二进制文件并在该文件的每个字节上循环? 问题答案: Python 2.4及更早版本 Python 2.5-2.7 请注意,with语句在2.5以下的Python版本中不可用。要在v 2.5中使用它,你需要导入它: 在2.6中是不需要的。 Python 3 在Python 3中,这有点不同。我们将不再以字节模式而是字节对象从流中获取原始字符,因此我们需要更改条件

  • 本文向大家介绍java遍历读取xml文件内容,包括了java遍历读取xml文件内容的使用技巧和注意事项,需要的朋友参考一下 本文实例讲解了java遍历读取xml文件内容的详细代码,分享给大家供大家参考,具体内容如下 再分享一例: 用JAVA读取XML文件 解析XML的步骤如下:   1.创建DocumentBuilder工厂   2.创建DocumentBuilder对象   3.Document

  • 我的数组正在加载,并且正在按计划(按照它们在文件中出现的顺序)将卡打印出来。当我尝试在单独的方法中循环遍历arraylist以检查数据是否存在时,它只打印最后一个对象而不是每个对象。有人能告诉我为什么吗? 加载法 和getAll()方法 运行时,它只打印出.txt文件中的最后一张牌“KS”(黑桃之王)。有人能告诉我为什么会这样吗? 谢谢 }

  • 在本章中,我们将讨论XML DOM遍历。 在前一章中学习了如何加载XML文档并解析由此获得的DOM对象。 可以遍历解析后的DOM对象以获取每个对象的内容。 遍历是一种通过在节点树中逐步遍历每个元素以系统方式完成循环的过程。 示例 以下示例(traverse_example.html)演示了DOM遍历具体用法。 在这里,将遍历元素的每个子节点。 文件:traverse_example.html -

  • 本文向大家介绍如何在JSP中遍历XML的节点?,包括了如何在JSP中遍历XML的节点?的使用技巧和注意事项,需要的朋友参考一下 <X:的forEach>标记用于遍历XML文档中的节点。 属性 <X:的forEach>标签具有以下属性- 属性 描述 需要 默认 选择 要评估的XPath表达式 是 没有 变种 用于存储每个循环的当前项目的变量名称 没有 没有 开始 迭代的开始索引 没有 没有 结束 迭

  • 问题内容: 我需要创建一个遍历子目录中所有文件的循环。您能帮我构造我的代码吗? 问题答案: 将RecursiveDirectoryIterator与RecursiveIteratorIterator结合使用。