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

一般に、ステータス属性はそのノードにはありません...だから私はそれを設定しています..それが更新されているかどうかを知るために..getAttributeでチェックしました..出力が来ていました..しかし、この属性は.xmlファイルに見られません. . 私が正確に逃した場所....??
(または)
tdomメソッドのみを使用して.xmlファイルの特定の行のみを更新する最良の方法はありますか?従来のプロセスである一時ファイルの作成に成功しました..しかし、tdomパーサーメソッドのみを使用して行を更新したい..

4

1 に答える 1

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 であるかを知る必要があります。シリアライゼーション ルールは、2 つの場合で微妙に異なります。)

于 2013-02-08T15:53:52.363 に答える