UDF的问题是,它似乎希望为所有内容返回字符串,而不是更有用的xml对象。我会避免使用它,而只是使用com对象
$oXml = ObjCreate("Msxml2.DOMDocument")
然后看看
documentation here
.
但无论如何,我认为这段代码会让你得到你想要的:
; Set the XML file
$xmlpath = @ScriptDir & "\Entity.xml"
$oXml = ObjCreate("Msxml2.DOMDocument")
$oXml.load($xmlpath)
; Fetch All Entities from XAML
$objNodeList = $oXml.selectNodes("entities/entity")
For $node in $objNodeList
ConsoleWrite($node.nodename & @CRLF)
$objChildNodeList = $node.selectNodes("*")
For $ChildNode in $objChildNodeList
ConsoleWrite(@TAB & $ChildNode.nodename & ' = ' & $ChildNode.text & @CRLF)
Next
Next
请注意,实际上不需要使用UDF,您可以只使用com对象的内置方法。在我看来,这比使用UDF更简单。
另一件值得一提的事情是,如果您在autoit中遇到任何问题,您可以尝试搜索如何在vba或vbs中执行相同的操作,因为语言非常相似,autoit可以使用vba/vbs中使用的所有com对象。当vba/vbs执行类似操作时
Set oXml = CreateObject("Msxml2.DOMDocument")
只需在autoit中执行以下操作:
$oXml=ObjCreate(“Msxml2.DOMDocument”)
.