【问题标题】:Create XML file with python?用python创建XML文件?
【发布时间】:2016-06-21 11:52:15
【问题描述】:

这是我的代码:

import xml.etree.ElementTree as ET

root = ET.Element("rss", version="2.0", xmlns:excerpt="http://wordpress.org/export/1.2/excerpt/", xmlns:content="http://purl.org/rss/1.0/modules/content/", xmlns:wfw="http://wellformedweb.org/CommentAPI/", xmlns:dc="http://purl.org/dc/elements/1.1/", xmlns:wp="http://wordpress.org/export/1.2/")

ET.dump(root)

这是我正在尝试创建的 xml 文件:

<rss version="2.0"
    xmlns:excerpt="http://wordpress.org/export/1.2/excerpt/"
    xmlns:content="http://purl.org/rss/1.0/modules/content/"
    xmlns:wfw="http://wellformedweb.org/CommentAPI/"
    xmlns:dc="http://purl.org/dc/elements/1.1/"
    xmlns:wp="http://wordpress.org/export/1.2/"
>

这是实际 xml 文件的非常基本的部分,但我无法使用 elementtree 正确创建它。直到版本号它才能正常工作,但是当我添加“xmlns:something”时它不起作用。我对 xml 很陌生,所以我不知道即使谷歌也无法帮助我理解。

注意:请告诉我 lxml 是更简单还是这个 ElementTree。因为我之前用 lxml 来处理 xpath 和 css 元素。

【问题讨论】:

  • 我不认为xmlns:excerpt 是一个有效的python 标识符。使用ET:element("rss", attrib={"xmlns:excerpt":"http://...", ...})
  • 感谢它的帮助。 :)

标签: xml python-3.x elementtree


【解决方案1】:

Python 标识符中不允许有冒号。 ElementTree 允许通过键 attrib 传递属性字典:

ET.element("rss", attrib={"xmlns:excerpt":"http..."}

【讨论】:

  • 我还有一个问题:每当我设置 "ET.SubElement(wp_author, "wp:author_last_name").text = """ 时,它都会返回给我:编码结果:“<![CDATA[]]>
  • 如何在生成xml文件之前解码这些字符。
  • 如果我理解正确,您希望将 CDATA 插入到您的 xml 中。 Here 是一个问题(有答案),但还有其他问题。如果它们不适合您,最好在 SO 中创建一个新问题。
猜你喜欢
  • 1970-01-01
  • 2012-10-07
  • 1970-01-01
  • 1970-01-01
  • 2018-07-29
  • 2013-06-08
  • 2021-06-13
  • 2018-10-22
  • 1970-01-01
相关资源
最近更新 更多