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-Key: 341447

Url: https://administrator.de/contentid/341447

Ausgedruckt am: 19.03.2024 um 02:03 Uhr

Mitglied: 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ß
Mitglied: 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
Mitglied: 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