Tcl setAttribute方法..如何只更新xml文件中的特定行

时间:2013-02-08 09:43:25

标签: tcl tdom

$intf setAttribute status "Shipped to Customer"
set status [$intf getAttribute status]
puts $status

一般状态属性不存在于那个节点中...所以我设置它...知道是否 它是更新与否我用getAttribute来检查。所以输出来了.. 但是这个属性在.xml文件中看不到.. 我完全错过的地方.... ?? (或)
有没有最好的方法只使用tdom方法更新.xml文件中的特定行 我成功地创建了传统流程的临时文件。 但我想只使用tdom解析器方法更新行..

1 个答案:

答案 0 :(得分:0)

我认为,问题是tDOM不会自动将您对文档对象模型所做的更改反映回文件中。相反,它的模型基于文件内容的断开连接的副本;要保持更改,您必须重新序列化并将其保存。

你可以这样做:

# Save to a temporary file, just in case things go wrong...
set f [open $filename.tmp "w"]
$doc asXML -channel $f;   # Or the asHTML method if it's HTML to be saved
close $f

# Now do the atomic replace
file rename -force $filename.tmp $filename

就这么简单。 (您需要知道它是XML还是HTML;序列化规则在两种情况下略有不同。)