【发布时间】:2018-04-19 21:17:09
【问题描述】:
我有一个具有以下结构的 XML 文件:
<?xml version="1.0" encoding="UTF-8"?>
<header>
<name>generic_1</name>
</header>
<body>
<resources>
<resource guid="ae8c34ad-a4e6-47fe-9b7d-cd60223754fe">
</resource>
<resource guid="fe236467-3df5-4019-9d55-d4881dfabae7">
</resource>
</resources>
</body>
我需要编辑每个资源的信息,所以我尝试通过字符串 </resource> 拆分文件,但 TCL 没有正确拆分它。
这是我尝试过的:split $file "</resource>"。我还尝试转义 字符,但仍然没有成功。
你能帮我一个优雅的解决方案吗?我可以通过取每一行并确定resource 结束的位置来做到这一点,但如果可以做到,split 会更好。
LE:我不能使用 tdom,我正在将文件编辑为文本文件,而不是 XML 文件。
谢谢
【问题讨论】:
-
您是否在
[xml]和[tcl]上搜索过以前的答案?这已经被报道过无数次了。 -
这听起来像是一个 XY 问题:你到底想做什么?
-
@mrcalvin 是的,我已经搜索过了,但我没有找到这个答案; @"glenn jackman" 我的 XML 中有一些标签,我需要修改这些标签,但我需要分离资源,因为我可能会修改错误的资源
-
XML 很难在不破坏结构的情况下作为文本进行编辑。最简单的部分是找到要编辑的地方并在那里进行更改。更难的部分是确保您在编辑后保存回文件的内容仍然是有效的 XML,其中除了您的编辑内容没有任何变化。 (这适用于任何语言,而不仅仅是 Tcl。)