Comment ajouter des données à un élément avec le paquet dom ActiveState
-
09-09-2019 - |
Question
En TCL, si vous utilisez le paquet DOM (disponible dans la distribution ActiveState) vous pouvez créer un fichier 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]
créer ce simple xml:
<result>
<trafficStatistics type="structure">
<Tx_Frames type="numericlist" displayName="Tx Frames"></Tx_Frames>
</trafficStatistics>
</result>
Comment puis-je ajouter des données à l'élément Tx_Frames?
<Tx_Frames type="numericlist" displayName="Tx Frames">some data</Tx_Frames>
Notez que le paquetage dom est en fait une enveloppe sur libxml2
La solution
Je crois que vous voulez que la commande ::dom::document createTextNode
. Par exemple:
::dom::document createTextNode $statElement "some data"
Quand j'ajoute cette commande à votre exemple de script:
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"
Il produit ce XML:
<trafficStatistics>
<Tx_Frames type="numericlist" displayName="Tx Frames">some data</Tx_Frames>
</trafficStatistics>
Vous pouvez trouver de la documentation pour le paquetage dom ici:
http://docs.activestate.com/activetcl/8.5/tcldom index.html
Hope qui aide,
Eric Melski
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow