Как добавить данные в элемент с помощью пакета ActiveState dom
В TCL, если вы используете пакет DOM (доступный в дистрибутиве ActiveState), вы можете создать xml.
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
1 ответ
Решение
Я верю, что вы хотите ::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
Надеюсь, это поможет,
Эрик Мелски