【发布时间】:2020-10-23 11:52:50
【问题描述】:
我有一个包含 xml 结构的字符串。 <root><test1>Test 1</test1><test2>Test <dummy>2</dummy> Test</test2><test3>Test 3</test3></root>,现在我想用混合内容 This is a New Input Scenario <AnyElement>Text</AnyElement> Check 替换元素 <test2> 中的值
下面是我的代码
from lxml import etree as ET
source = "<root><test1>Test 1</test1><test2>Test <dummy>2</dummy> Test</test2><test3>Test 3</test3></root>"
repl = "This is a New Input Scenario <AnyElement>Text</AnyElement> Check"
inp = ET.fromstring(source)
for inputelement in inp.xpath('.//test2'):
inputelement.text = repl
inp = str(bytearray(ET.tostring(inp)).decode())
print(inp)
输出
<root><test1>Test 1</test1><test2>This is a New Input Scenario &lt;AnyElement&gt;Text&lt;/AnyElement&gt; Check<dummy>2</dummy> Test</test2><test3>Test 3</test3></root>
预期输出
<root><test1>Test 1</test1><test2>This is a New Input Scenario <AnyElement>Text</AnyElement> Check</test2><test3>Test 3</test3></root>
【问题讨论】: