geosem

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  
Auf Facebook teilen
Auf X (Twitter) teilen
Auf Reddit teilen
Auf Linkedin teilen

Content-ID: 341447

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

Ausgedruckt am: 08.07.2025 um 12:07 Uhr

133417
133417 23.06.2017 aktualisiert um 18:48:42 Uhr
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
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
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