我有一个XML,其中有一些不匹配的标记ENAMEX
,我正试图删除这些标记
<Subject stype="ORG" xref="1234">
<SubjectFullName type="L"><ENAMEX type="ORGANIZATION" id="ORG-112233-000">WEBSITE.COM</SubjectFullName>
<SubjectLastName type="L">WEBSITE.COM</ENAMEX></SubjectLastName>
<SubjectPhone type="Work">1234567890</SubjectPhone>
</Subject>
我尝试了以下代码
mm = 'ENAMEX'
extra_tag_search = f"</{mm}><"
add_closing_tag_search = f"<{mm}(?!.*</{mm}>)(.*)"
add_closing_tag_replace = f"<{mm}>\1</{mm}>"
ffx = re.sub(extra_tag_search, "<", ff)
fff = re.sub(add_closing_tag_search, add_closing_tag_replace, ffx)
但是它只修复了一个问题,而导致了另一个问题--WEBSITE.COM
已经消失,现在SubjectFullName
没有结束标记
<Subject stype="ORG" xref="1234">
<SubjectFullName type="L"><ENAMEX></ENAMEX>
<SubjectLastName type="L">WEBSITE.COM</SubjectLastName>
<SubjectPhone type="Work">1234567890</SubjectPhone>
</Subject>
最终,我并不真正需要ENAMEX
标记,所以我只想在它没有结束标记时从xml中删除它。我的代码确实负责删除SubjectLastName
中的无关ENAMEX
标记,但我正在努力使用正确的正则表达式将其从SubjectFullName
标记中删除,而不同时删除WEBSITE.COM</SubjectFullName>
。我试图用\1
替换,但显然不起作用,只留下了那个奇怪的方形符号。最终,我想以
<Subject stype="ORG" xref="1234">
<SubjectFullName type="L">WEBSITE.COM</SubjectFullName>
<SubjectLastName type="L">WEBSITE.COM</SubjectLastName>
<SubjectPhone type="Work">1234567890</SubjectPhone>
</Subject>
目前没有回答
相关问题 更多 >
编程相关推荐