Ich habe eine XML
Datei auf einem Unix-Server. Wie kann ich diese XML
Datei mit einem Skript ausführen?Wie können wir eine XML-Datei mit TCL-Skript ausführen?
-1
A
Antwort
2
Wenn Sie nach einer einfachen Möglichkeit zum Parsen suchen (wenn Sie das mit Run meinen), betrachten Sie das Tdom-Paket.
Referenz: http://wiki.tcl.tk/8984
Hier ist eine Datei foo.xml mit folgendem Inhalt:
<my_root>
<my_child1>
<my_subchild1 foo="bar">bat</my_subchild1>
</my_child1>
</my_root>
Lesen Sie die XML-Daten in eine Variable (nicht den besten Weg, wenn die XML-Inhalte groß sind):
%
% set fd [open foo.xml]
file3
% set xml [read $fd]
<my_root>
<my_child1>
<my_subchild1 foo="bar">bat</my_subchild1>
</my_child1>
</my_root>
% close $fd
%
Jetzt ist es analysieren:
% package require tdom
0.8.3
%
% set documentHandle [dom parse $xml]
domDoc0x2510320
% set root [$documentHandle documentElement]
domNode0x2546d90
% $root asXML
<my_root>
<my_child1>
<my_subchild1 foo="bar">bat</my_subchild1>
</my_child1>
</my_root>
% set child1 [$root firstChild]
domNode0x16dcec0
% $child1 asXML
<my_child1>
<my_subchild1 foo="bar">bat</my_subchild1>
</my_child1>
% set tmp [$root selectNodes //my_subchild1]
domNode0x16dd630
% $tmp asXML
<my_subchild1 foo="bar">bat</my_subchild1>
% $tmp getAttribute foo
bar
% $tmp text
bat
%
Hier ist die Liste der unterstützten Befehl mit einem geparsten XML-Knoten:
% $tmp
Usage nodeObj <method> <args>, where method can be:
nodeType
nodeName
nodeValue ?newValue?
hasChildNodes
childNodes
childNodesLive
parentNode
firstChild ?nodeObjVar?
lastChild ?nodeObjVar?
nextSibling ?nodeObjVar?
previousSibling ?nodeObjVar?
hasAttribute attrName
getAttribute attrName ?defaultValue?
setAttribute attrName value ?attrName value ...?
removeAttribute attrName
hasAttributeNS uri localName
getAttributeNS uri localName ?defaultValue?
setAttributeNS uri attrName value ?attrName value ...?
removeAttributeNS uri attrName
attributes ?attrNamePattern?
appendChild new
insertBefore new ref
replaceChild new old
removeChild child
cloneNode ?-deep?
ownerDocument
getElementsByTagName name
getElementsByTagNameNS uri localname
getElementById id
find attrName attrValue ?nodeObjVar?
child number|all ?type? ?attrName attrValue?
descendant number|all ?type? ?attrName attrValue?
ancestor number|all ?type? ?attrName attrValue?
fsibling number|all ?type? ?attrName attrValue?
psibling number|all ?type? ?attrName attrValue?
root ?nodeObjVar?
target
data
text
prefix
namespaceURI
getBaseURI
baseURI ?URI?
localName
delete
getLine
getColumn
@<attrName> ?defaultValue?
asList
asXML ?-indent <none,0..8>? ?-channel <channel>? ?-escapeNonASCII? ?-escapeAllQuot? ?-doctypeDeclaration <boolean>?
asHTML ?-channel <channelId>? ?-escapeNonASCII? ?-htmlEntities?
asText
appendFromList nestedList
appendFromScript script
insertBeforeFromScript script ref
appendXML xmlString
selectNodes ?-namespaces prefixUriList? ?-cache <boolean>? xpathQuery ?typeVar?
toXPath
disableOutputEscaping ?boolean?
precedes node
normalize ?-forXPath?
xslt ?-parameters parameterList? <xsltDocNode>
readlock
writelock
%
Was bedeutet 'eine XML-Datei ausführen' bedeuten? XML-Dateien sind Datenspeichergeräte mit Namen-Wert-Paaren. –
versuchen Sie, ein XML-Dokument mit TCL zu analysieren? –
Optimiert durch Entfernen überflüssiger Anweisungen. Formatierte technische Terminologie. – MarsAtomic