【问题标题】:How to add an xml element and wrap the data (inner-text) in CDATA tags using ElementTree如何使用 ElementTree 添加 xml 元素并将数据(内部文本)包装在 CDATA 标记中
【发布时间】:2015-03-27 15:57:49
【问题描述】:

我正在努力寻找一个很好的例子,说明如何将 XML 元素添加到 XML 文档,并将数据(内部文本)添加到同一元素,但将数据包装在 CDATA 标记中?

这是我需要的示例。我有以下文件。

<data>
     <config>
          <documentation>This is my documentation<documentation>
     </config>
</data>

然后我想添加一个元素和 CDATA 作为内部文本。所以它看起来像这样。我需要包装在 CDATA 标记中的数据可能相当大,需要从文件中读取/引用。

<data>
     <config>
              <documentation>This is my documentation<documentation>
              <script><![CDATA[
              function foo()
              …
              End
              ]]>
              </script>
     </config>
</data>

然后我需要将更改写到新文档中...(以便我拥有原始文件和添加内容。

【问题讨论】:

标签: python xml python-2.7 elementtree cdata


【解决方案1】:

你应该可以使用lxml提供的.CDATA()方法了。

http://lxml.de/api.html#cdata

像往常一样创建一个子元素

some_var = root.find('config')
another_var = etree.SubElement(some_var, 'script')
another_var.text = etree.CDATA(another_var.text)

然后就可以正常写出数据了。

【讨论】:

    猜你喜欢
    • 2013-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-13
    • 1970-01-01
    • 2010-10-08
    相关资源
    最近更新 更多