如何使用ActiveState的dom包将数据添加到元素
问题描述:
在TCL中,如果使用DOM包(可在ActiveState发行版中获得),则可以创建xml。如何使用ActiveState的dom包将数据添加到元素
set xmlDoc [::dom::create]
set root [::dom::document createElement $xmlDoc "trafficStatistics"]
set statElement [::dom::document createElement $root "Tx_Frames"]
::dom::element setAttribute $statElement "type" "numericlist"
::dom::element setAttribute $statElement "displayName" "Tx Frames"
puts [::dom::serialize $xmlDoc -indent true]
创建这个简单的XML:
<result>
<trafficStatistics type="structure">
<Tx_Frames type="numericlist" displayName="Tx Frames"></Tx_Frames>
</trafficStatistics>
</result>
我怎样才能一些数据添加到Tx_Frames元素?
<Tx_Frames type="numericlist" displayName="Tx Frames">some data</Tx_Frames>
注意dom包实际上是在libxml2的
答
的包装,我相信你想要的::dom::document createTextNode
命令。例如:
::dom::document createTextNode $statElement "some data"
当我将此命令添加到您的示例脚本:
set xmlDoc [::dom::create]
set root [::dom::document createElement $xmlDoc "trafficStatistics"]
set statElement [::dom::document createElement $root "Tx_Frames"]
::dom::element setAttribute $statElement "type" "numericlist"
::dom::element setAttribute $statElement "displayName" "Tx Frames"
::dom::document createTextNode $statElement "some data"
它生产这个XML:
<trafficStatistics>
<Tx_Frames type="numericlist" displayName="Tx Frames">some data</Tx_Frames>
</trafficStatistics>
您可以找到文档dom包在这里:
http://docs.activestate.com/activetcl/8.5/tcldom/index.html
希望有帮助,
Eric Melski