我对这个问题视而不见。在
我正在将XML封装的HTML数据添加到Atlassian Confluence中。对于-tags,我需要添加一个span标记。但无论我如何尝试,lxml lib都会将我的<;和>;分别转换为<;和>。但是,转换只针对我的新标记,中的任何现有标记都不会改变其特征!在
看看下面的Python代码:
for x in doc.iter():
if x.tag == "td":
print x.text
x.text = "no tags"
print etree.dump(x)
x.text = "<span>one tag</span>"
print etree.dump(x)
对于此输入:
^{pr2}$这是输出:
<td>no tags</td>None
<td><span>one tag</span></td>None
1.2
<td>no tags</td>None
<td><span>one tag</span></td>None
None
<td>no tags<a href="http://korv.com/apa.tar.gz">3.4</a></td>None
<td><span>one tag</span><a href="http://korv.com/apa.tar.gz">3.4</a></td>None
no
<td>no tags</td>None
<td><span>one tag</span></td>None
coreutils
<td>no tags</td>None
<td><span>one tag</span></td>None
6.12
<td>no tags</td>None
<td><span>one tag</span></td>None
None
<td>no tags<a href="http://ftp.gnu.org/gnu/coreutils/coreutils-8.21.tar.xz">8.21</a></td>None
<td><span>one tag</span><a href="http://ftp.gnu.org/gnu/coreutils/coreutils-8.21.tar.xz">8.21</a></td>None
no
<td>no tags</td>None
<td><span>one tag</span></td>None
如您所见,其中的-标记未被更改,而my则被转换。我不能理解这个错误。在
为什么对我的文本进行转换,而对现有的文本却未进行任何处理?在
当你写作的时候
你是说节点的内容就是文本。由于}是XML中的保留字符,因此需要对它们进行转义。在
<
和{看起来您正在尝试创建新的
<span>
节点,要做到这一点,您必须创建这些节点。在您正在将文本插入到XML元素中。文本总是被转义以保证XML安全。在
如果要添加新标记,请创建一个新的} factory 最简单:
Element
;^{如果您想包装
^{pr2}$td
的内容,只需移动所有元素(加上.text
属性:演示:
相关问题 更多 >
编程相关推荐