【发布时间】:2021-09-18 00:28:51
【问题描述】:
我正在将 XML 文档转换为 .ckl 文档。它们是相似的文件格式,但并不是那么简单。我的大部分工作都在工作,但有一部分我被困住了。
在使用 ElementTree 解析 XML 之前,我必须将一些 < 和 > 转换为 < 和 >,因为原始 XML 有一些错误,需要更正才能正确解析。我没有意识到的一件事是,在某些组中,我需要离开 < 和 >,因为 .ckl 阅读器程序将该文本显示为 < 和 >
基本上,我纠正过度以便能够解析,但当它们在 <fixtext> 组中时需要将它们改回来。
为了进行初始更正,我将整个 XML 文件作为一个大字符串复制到一个变量中并执行 data.replace('&lt;', '<') 这工作正常并替换了所有所需的实例,但它也更正了我需要离开的情况&lt;
在此之后,我需要在解析之前将 <fixtext> 组中的那几个案例改回来,否则一切都会搞砸
TL;DR 我需要在行数发生变化的多行字符串中替换分隔符 <fixtest *tags here*> 和 </fixtext> 之间的 &lt; 和 &gt;
任何帮助将不胜感激。如果您需要更多信息,请告诉我,我很乐意回答任何问题
原始 XML 关闭的示例:
<description><VulnDiscussion>
这里,VulnDiscussion 应该是一个新标签
开始修复文本:
<fixtext fixref="F-22407r554595_fix">Configure the policy value for Computer Configuration >>
Administrative Templates >> Windows Components >> BitLocker Drive Encryption >>
Operating System Drives "Require additional authentication at startup" to "Enabled" with "Configure TPM
Startup PIN:" set to "Require startup PIN with TPM" or with "Configure TPM startup key and PIN:" set to
"Require startup key and PIN with TPM".
</fixtext>
【问题讨论】:
-
您能否提供一个起始 XML 字符串的示例?
-
这就够了?文档中有多个 fixtext 实例,但这是一个示例 @DarrylG
-
@JackMcGowan——可能够了。请求,因为最好为潜在的响应者提供示例文本以测试他们的答案。
标签: python xml replace elementtree