You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python实现文件内容复制后添加XML闭合标签问题求助

Fixing XML Closure Tags Duplication Issue in Python Script

嘿,我一眼就看出问题出在哪啦!你把那些XML闭合标签的写入语句放进了读取文本行的for循环里,所以每读取一行内容,程序就会输出一遍</codeblock>、</conbody>和</concept>,这才导致了标签重复出现的问题。

修正后的代码

把闭合标签的写入逻辑移到循环外面,等所有文本内容都写完之后再统一添加这些闭合标签就可以了:

with open("hello.txt") as f:
    with open('copy.xml', 'w') as f1:
        f1.write("<?xml version=\"1.0\" encoding=\"UTF-8\"?>")
        f1.write("<!DOCTYPE concept PUBLIC \"-//OASIS//DTD DITA Concept//EN\" \"concept.dtd\">")
        f1.write("<concept id =\"")
        f1.write("\">")
        f1.write("<title></title>")
        f1.write("<conbody>")
        f1.write("<codeblock>")
        # 循环只负责写入文本文件的每一行内容
        for line in f:
            f1.write(line)
        # 所有文本写完后,再添加闭合标签
        f1.write("</codeblock>")
        f1.write("</conbody>")
        f1.write("</concept>")

为什么这样改?

原来的代码中,闭合标签在循环内部,每处理一行文本就会执行一次闭合操作;现在把这些语句移到循环外,只有当hello.txt里的所有内容都写入到<codeblock>标签内部后,才会依次闭合codeblock、conbody和concept标签,完美匹配你想要的输出结构。

运行修正后的代码,生成的copy.xml就会和你预期的一致啦~

内容的提问来源于stack exchange,提问作者Shilpa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.08 21:57:46