Sample code for 30+ languages & platforms
PowerShell

Access SOAP Body XML

Demonstrates how to access the SOAP body in XML.
<?xml version="1.0" encoding="utf-8" ?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:cfdi="http://www.sat.gob.mx/cfd/3">
    <soapenv:Body>
        <tfd:TimbreFiscalDigital version="1.0" />
    </soapenv:Body>
</soapenv:Envelope>

Chilkat PowerShell Downloads

PowerShell
Add-Type -Path "C:\chilkat\ChilkatDotNet47-x64\ChilkatDotNet47.dll"

$success = $false

$xSoapEnvelope = New-Object Chilkat.Xml

$success = $xSoapEnvelope.LoadXmlFile("soapMessage.xml")
if ($success -ne $true) {
    $($xSoapEnvelope.LastErrorText)
    exit
}

# The root node is the SOAP envelope, and in this particular case has a Tag of "soapenv:Envelope"
$("SOAP envelope tag: " + $xSoapEnvelope.Tag)

# The SOAP body (in this case) is a direct child of the SOAP envelope
# and has the tag "soapenv:Body"
$xSoapBody = $xSoapEnvelope.FindChild("soapenv:Body")
if ($xSoapEnvelope.LastMethodSuccess -eq $false) {
    $("No direct child having the tag `"soapenv:Body`" was found.")
    exit
}

# The SOAP message body is the direct child of the SOAP envelope body:
$xMessageBody = $xSoapBody.FindChild("TimbreFiscalDigital")
if ($xSoapBody.LastMethodSuccess -eq $false) {
    $("No direct child having the tag `"TimbreFiscalDigital`" was found.")

    exit
}

# If desired, get the XML of just the SOAP message body:
$soapMessageXml = $xSoapBody.GetXml()

# --------------------------------------------------------------------------------
# Also see Chilkat's Online WSDL Code Generator
# to generate code and SOAP Request and Response XML for each operation in a WSDL.
# --------------------------------------------------------------------------------