Como adicionar dados a um elemento com o pacote dom da ActiveState
-
09-09-2019 - |
Pergunta
Em TCL, se você usar o pacote DOM (disponível na distribuição ActiveState) você pode criar um 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]
criar este xml simples:
<result>
<trafficStatistics type="structure">
<Tx_Frames type="numericlist" displayName="Tx Frames"></Tx_Frames>
</trafficStatistics>
</result>
Como posso adicionar alguns dados para o elemento Tx_Frames?
<Tx_Frames type="numericlist" displayName="Tx Frames">some data</Tx_Frames>
Note que o pacote dom é realmente um wrapper sobre libxml2
Solução
Eu acredito que você deseja que o comando ::dom::document createTextNode
. Por exemplo:
::dom::document createTextNode $statElement "some data"
Quando eu adicionar este comando para seu script de exemplo:
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"
Ela produz este XML:
<trafficStatistics>
<Tx_Frames type="numericlist" displayName="Tx Frames">some data</Tx_Frames>
</trafficStatistics>
Você pode encontrar documentação para o pacote dom aqui:
http://docs.activestate.com/activetcl/8.5/tcldom /index.html
Espero que ajude,
Eric Melski
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow