geosem
Goto Top

Betragsfeld im XML

Hallo

Nun habe ich es fast geschafft, das vorläufig letze Problem ist der Betrag, der wird im XML wie folgt dargestellt:

<Amt Ccy="CHF">3.85</Amt>

Nun erzeugt mir das Script als erstes Element ein "Ccy" und unter "Amt" erscheint "System.Xml.XmlElement"

Viele Grüsse und ein schönes Wochenende face-wink

$in = 'camt.xml'  
$out = 'camt.csv'  
$xml = new-Object XML; $xml.Load($in)

$xml.document.BkToCstmrDbtCdtNtfctn.Ntfctn.Ntry | %{
    $data = [ordered]@{}
    $_.ParentNode.Attributes | %{$data.($_.Name) = $_.'#text'}  
    $_.SelectNodes('//*[not(*)]') | ?{$_.ParentNode.Name -notin @('NtryDtls','TxDtls')} |   
     %{if($_.HasAttributes){$_.Attributes | 
	  %{$data.($_.Name) = $_.'#text'}}  

}
	$data.TNR = $_.NtryRef
	$data.Dat = $_.BookgDt.Dt
	$data.Val = $_.ValDt.Dt

    $_.NtryDtls.TxDtls | %{
	    $data.Refs = $_.Refs.AcctSvcrRef
            $data.Amt = $_.Amt
            $data.Ref = $_.RmtInf.Strd.CdtrRefInf.Ref
            [pscustomobject] $data
    }
} | export-csv $out -Delimiter ";" -NoType -Encoding UTF8  

Content-ID: 341447

Url: https://administrator.de/forum/betragsfeld-im-xml-341447.html

Ausgedruckt am: 18.04.2025 um 20:04 Uhr

133417
133417 23.06.2017 aktualisiert um 18:48:42 Uhr
Goto Top
Na ist doch logisch wenn du keine Eigenschaft angibst ist das Ergebnis das Object und nicht der String also je nach Object erhältst du den Inhalt des Elements:
$_.Amt.'#text'
oder
$_.Amt.innerText

Gruß
GeoSem
GeoSem 23.06.2017 um 14:54:35 Uhr
Goto Top
Danke BibersBaum!
das mit dem .Value. ist mir nicht klar - aber mit $_.Amt.'#text' funktioniert es face-wink
133417
133417 23.06.2017 aktualisiert um 16:23:14 Uhr
Goto Top
Deswegen schrieb ich ja, kommt drauf an welchen Typ Object du verwendest.
Die Member eines Objects kannst du dir ja mit Get-Member anzeigen lassen. So kannst du dir das in Zukunft selber erarbeiten face-wink