如何使用任何xml库替换节点的完整内容?

2024-04-26 23:32:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图使用Python解析xml文件,但是我有一些可能包含xml数据的标记。例如:

<code>
  <?xml version="1.0" encoding="utf-8"?>
</code>

我想这样写CDATA标记:

<code><![CDATA[
  <?xml version="1.0" encoding="utf-8"?>
   ]]>
</code>

我试过(用lxml):

a = etree.fromstring(data)
for e in a.findall("code"):
    e.text = etree.CDATA(etree.tostring(e))

但我得到:

<code><![CDATA[<code><?xml version="1.0" encoding="utf-8"?></code>]]>
<?xml version="1.0" encoding="utf-8"?>
</code>

Tags: 文件数据in标记fordataversioncode
2条回答

(我是发帖后注册的OP)

与 e、 文本=etree.CDATA酒店(电子文本)

我明白了

<code type="php"><![CDATA[
]]><?php echo $foo;
?>
</code>

为了

<code type="php">
<?php
    echo $foo;
?>
</code>

替换代码找到<code>元素并将其序列化为该元素的新文本。不过,似乎只想包含<code>元素的子元素。你知道吗

尝试将e.text设置为CDATA(e.text),而不是设置为序列化e的结果。你知道吗

相关问题 更多 >