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

Printed on: April 18, 2024 at 15:04 o'clock

Mitglied: 133417
133417 Jun 23, 2017 updated at 16:48:42 (UTC)
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ß
Member: GeoSem
GeoSem Jun 23, 2017 at 12:54:35 (UTC)
Goto Top
Danke BibersBaum!
das mit dem .Value. ist mir nicht klar - aber mit $_.Amt.'#text' funktioniert es face-wink
Mitglied: 133417
133417 Jun 23, 2017 updated at 14:23:14 (UTC)
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