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
Please also mark the comments that contributed to the solution of the article
Content-Key: 341447
Url: https://administrator.de/contentid/341447
Printed on: April 18, 2024 at 15:04 o'clock
3 Comments
Latest comment
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