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
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
$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
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 341447
Url: https://administrator.de/forum/betragsfeld-im-xml-341447.html
Ausgedruckt am: 18.04.2025 um 20:04 Uhr
3 Kommentare
Neuester Kommentar

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ß
$_.Amt.'#text'
oder
$_.Amt.innerText
Gruß

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
Die Member eines Objects kannst du dir ja mit Get-Member anzeigen lassen. So kannst du dir das in Zukunft selber erarbeiten