Как добавить данные в элемент с помощью dom-пакета ActiveState

StackOverflow https://stackoverflow.com/questions/747613

Вопрос

В 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

Это было полезно?

Решение

Я верю, что вы хотите ::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

Надеюсь, это поможет,

Эрик Мельски

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top