如何使用ActiveState的dom包将数据添加到元素

如何使用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