Jump to content

Recommended Posts

Posted

Hi all,

just a simple (I think) question bout XML

I have an XML file and I need to retrieve the text contained in a node (the text of the node and of all children)

I googled ad I saw the I can use .textContent

$Xpath = "/OperationalTopology/*/*/ID"
    $oNodes1 = $oNodoRadice.SelectNodes($Xpath)
    For $oNode1 In $oNodes1
        $Id = $oNode1.text
        $Parent = $oNode1.parentNode
        $Class = $Parent.nodeName
        $Contains = $oNode1.textContent
        FileWriteLine ( $oFileOutTmp, "OpTopo;" & $Id & ";" & $Class )
    Next

$oNode1.textContent unfortunately doesn't work ... (The requested action with this object has failed.:)

Suggestions?

Thanks

 

Posted

Hello. It would be great if you share a XML sample file.

 

Saludos

Posted

From XML.au3:
 

Func _XML_GetValue(ByRef $oXmlDoc, $sXPath, $bReturnFirstAsString = False)
    ; Error handler, automatic cleanup at end of function
    Local $oXML_COM_ErrorHandler = ObjEvent("AutoIt.Error", __XML_ComErrorHandler_InternalFunction)
    #forceref $oXML_COM_ErrorHandler

    Local $oNodes_coll = _XML_SelectNodes($oXmlDoc, $sXPath)
    If @error Then Return SetError(@error, @extended, '')

    Local $aResponse[1]
    For $oNode_enum In $oNodes_coll
        If $oNode_enum.hasChildNodes() Then
            For $oNode_enum_Child In $oNode_enum.childNodes()
                If $oNode_enum_Child.nodeType = $XML_NODE_CDATA_SECTION Then
                    _XML_Array_AddName($aResponse, $oNode_enum_Child.data)
                ElseIf $oNode_enum_Child.nodeType = $XML_NODE_TEXT Then
                    _XML_Array_AddName($aResponse, $oNode_enum_Child.Text)
                EndIf
            Next
        Else
            _XML_Array_AddName($aResponse, $oNode_enum.nodeValue)
        EndIf
    Next

    $aResponse[0] = UBound($aResponse) - 1
    If $bReturnFirstAsString Then Return SetError($XML_ERR_SUCCESS, $XML_EXT_DEFAULT, $aResponse[1])
    Return SetError($XML_ERR_SUCCESS, $aResponse[0], $aResponse)
EndFunc   ;==>_XML_GetValue

 

Signature beginning:
Please remember: "AutoIt"..... *  Wondering who uses AutoIt and what it can be used for ? * Forum Rules *
ADO.au3 UDF * POP3.au3 UDF * XML.au3 UDF * IE on Windows 11 * How to ask ChatGPT for AutoIt Codefor other useful stuff click the following button:

  Reveal hidden contents

Signature last update: 2023-04-24

  • 3 months later...
Posted

I have an XML file, an XML path (EG: //ClientData/prop[@name='CHomePhone'])

Can someone give an example of how to call this function.

All I need is to read the value of the node and set this same node.

 

#include <_XMLDOMWrapper.au3>

$x1="//ClientData/prop[@name='CHomePhone']"
$filename="C:\HouseMaster\CloneRPT.hr4"
$C1=_XML_GetValue($filename,$x1,True)
Exit

I get a lot of syntax errors, undefined function, "Possibly used before declaration"

 

Thanks

CloneRPT.hr4Fetching info...

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...