alias xmlNodeVal {
; Usage: $xmlNodeVal(location, pattern[, separator])[.xml]
;
; location : either a local file or a web resource
;
; pattern : a valid XST expression:
; http://msdn.microsoft.com/library/default.asp?url=/library/en-us/xmlsdk/html/xmconpatterns.asp
;
; separator : an ascii value. use when retrieving multiple nodes
;
; .xml : returns <TAG>+text instead of plain text
;
; For example, this lists the current listeners on a SHOUTCast server:
; $xmlNodeVal(http://admin:pass@127.0.0.1:8000/admin.cgi?mode=viewxml,/SHOUTCASTSERVER/LISTENERS/LISTENER/HOSTNAME, 32)
.comopen oDOM Msxml2.DOMDocument
if $comerr { return }
!.echo -q $com(oDOM, async, 4, bool, false)
if !$com(oDOM, load, 1, bstr, $1) || !$com(oDOM, selectNodes, 1, bstr, $2, dispatch* colNodes) {
.comclose oDOM
return
}
var %val, %sep = $iif($3, $3, 32), %prop = $iif($prop, xml, text)
var %i = $comval(colNodes, 0)
while %i {
%val = $instok(%val, $comval(colNodes, %i, %prop), 1, %sep)
dec %i
}
.comclose colNodes
.comclose oDOM
return %val
}