barick
Goto Top

XML in CSV umwandeln mit Powershell

Guten Morgen Leute

Ich möchte eine XML Datei mit Powershell in eine CSV umwandeln. Mithilfe eines Beitrages hier bin ich schon fast ans Ziel gelangt.
Nun stehe ich jedoch beim Auslesen des Wertes bei <Status> etwas auf dem Schlauch.
Das Ergebnis liefert immer "System.Xml.XmlElement". Kann mir jemand erklären was ich hier falsch mache?

Besten Dank

XML Datei:
<?xml version="1.0" encoding="UTF-8"?>  
<measuringManagement xmlns="http://innosolv.ch/namespace/isag">  
   <package>
      <sender>
         <user>
            <userName>sa</userName>
         </user>
         <swSystemID>372</swSystemID>
      </sender>
      <transaction>
         <transactionID>e6fb35a4-ece5-4d6b-a67f-9eb1f9cd8702</transactionID>
         <transactionCase>2100</transactionCase>
         <transactionDate>2022-01-03</transactionDate>
         <transactionAcknowledge>false</transactionAcknowledge>
      </transaction>
   </package>
   <device>
      <meteringcode>CH1012801234500000000000000006129</meteringcode>
      <meteredValue>
         <obis>1-1:2.8.1</obis>
         <readingDate>2021-12-14</readingDate>
         <time>2021-12-14T00:00:00</time>
         <status rvcd="2">Gestoerter/unplausibler Wert</status>  
         <value>0</value>
      </meteredValue>
      <meteredValue>
         <obis>1-1:2.8.2</obis>
         <readingDate>2021-12-14</readingDate>
         <time>2021-12-14T00:00:00</time>
         <status rvcd="2">Gestörter/unplausibler Wert</status>  
         <value>0</value>
      </meteredValue>
      <meteredValue>
         <obis>1-1:8.8.1</obis>
         <readingDate>2021-12-14</readingDate>
         <time>2021-12-14T00:00:00</time>
         <status rvcd="2">Gestörter/unplausibler Wert</status>  
         <value>376.879</value>
      </meteredValue>
      <meteredValue>
         <obis>1-1:6.8.1</obis>
         <readingDate>2021-12-14</readingDate>
         <time>2021-12-14T00:00:00</time>
         <status rvcd="2">Gestörter/unplausibler Wert</status>  
         <value>0</value>
      </meteredValue>
      <meteredValue>
         <obis>1-1:8.8.2</obis>
         <readingDate>2021-12-14</readingDate>
         <time>2021-12-14T00:00:00</time>
         <status rvcd="2">Gestörter/unplausibler Wert</status>  
         <value>667.544</value>
      </meteredValue>
      <meteredValue>
         <obis>1-1:5.8.1</obis>
         <readingDate>2021-12-14</readingDate>
         <time>2021-12-14T00:00:00</time>
         <status rvcd="2">Gestörter/unplausibler Wert</status>  
         <value>518.914</value>
      </meteredValue>
      <meteredValue>
         <obis>1-1:6.8.2</obis>
         <readingDate>2021-12-14</readingDate>
         <time>2021-12-14T00:00:00</time>
         <status rvcd="2">Gestörter/unplausibler Wert</status>  
         <value>0</value>
      </meteredValue>
      <meteredValue>
         <obis>1-1:1.8.2</obis>
         <readingDate>2021-12-14</readingDate>
         <time>2021-12-14T00:00:00</time>
         <status rvcd="2">Gestörter/unplausibler Wert</status>  
         <value>5587.246</value>
      </meteredValue>
      <meteredValue>
         <obis>1-1:5.8.2</obis>
         <readingDate>2021-12-14</readingDate>
         <time>2021-12-14T00:00:00</time>
         <status rvcd="2">Gestörter/unplausibler Wert</status>  
         <value>1221.432</value>
      </meteredValue>
      <meteredValue>
         <obis>1-1:1.8.1</obis>
         <readingDate>2021-12-14</readingDate>
         <time>2021-12-14T00:00:00</time>
         <status rvcd="2">Gestörter/unplausibler Wert</status>  
         <value>3176.787</value>
      </meteredValue>
      <meteredValue>
         <obis>1-1:7.8.1</obis>
         <readingDate>2021-12-14</readingDate>
         <time>2021-12-14T00:00:00</time>
         <status rvcd="2">Gestörter/unplausibler Wert</status>  
         <value>0</value>
      </meteredValue>
      <meteredValue>
         <obis>1-1:7.8.2</obis>
         <readingDate>2021-12-14</readingDate>
         <time>2021-12-14T00:00:00</time>
         <status rvcd="2">Gestörter/unplausibler Wert</status>  
         <value>0</value>
      </meteredValue>
      <meteredValue>
         <obis>1-1:1.8.1</obis>
         <readingDate>2022-01-01</readingDate>
         <time>2022-01-01T00:00:00</time>
         <value>3266.703</value>
      </meteredValue>
      <meteredValue>
         <obis>1-1:6.8.2</obis>
         <readingDate>2022-01-01</readingDate>
         <time>2022-01-01T00:00:00</time>
         <value>0</value>
      </meteredValue>
      <meteredValue>
         <obis>1-1:5.8.1</obis>
         <readingDate>2022-01-01</readingDate>
         <time>2022-01-01T00:00:00</time>
         <value>527.413</value>
      </meteredValue>
      <meteredValue>
         <obis>1-1:8.8.1</obis>
         <readingDate>2022-01-01</readingDate>
         <time>2022-01-01T00:00:00</time>
         <value>385.967</value>
      </meteredValue>
      <meteredValue>
         <obis>1-1:5.8.2</obis>
         <readingDate>2022-01-01</readingDate>
         <time>2022-01-01T00:00:00</time>
         <value>1227.178</value>
      </meteredValue>
      <meteredValue>
         <obis>1-1:1.8.2</obis>
         <readingDate>2022-01-01</readingDate>
         <time>2022-01-01T00:00:00</time>
         <value>5693.705</value>
      </meteredValue>
      <meteredValue>
         <obis>1-1:7.8.1</obis>
         <readingDate>2022-01-01</readingDate>
         <time>2022-01-01T00:00:00</time>
         <value>0</value>
      </meteredValue>
      <meteredValue>
         <obis>1-1:2.8.1</obis>
         <readingDate>2022-01-01</readingDate>
         <time>2022-01-01T00:00:00</time>
         <value>0</value>
      </meteredValue>
      <meteredValue>
         <obis>1-1:2.8.2</obis>
         <readingDate>2022-01-01</readingDate>
         <time>2022-01-01T00:00:00</time>
         <value>0</value>
      </meteredValue>
      <meteredValue>
         <obis>1-1:6.8.1</obis>
         <readingDate>2022-01-01</readingDate>
         <time>2022-01-01T00:00:00</time>
         <value>0</value>
      </meteredValue>
      <meteredValue>
         <obis>1-1:7.8.2</obis>
         <readingDate>2022-01-01</readingDate>
         <time>2022-01-01T00:00:00</time>
         <value>0</value>
      </meteredValue>
      <meteredValue>
         <obis>1-1:8.8.2</obis>
         <readingDate>2022-01-01</readingDate>
         <time>2022-01-01T00:00:00</time>
         <value>682.866</value>
      </meteredValue>
   </device>
   <device>
      <meteringcode>CH1012801234500000000000000009875</meteringcode>
      <meteredValue>
         <obis>1-1:1.8.2</obis>
         <readingDate>2021-12-14</readingDate>
         <time>2021-12-14T00:00:00</time>
         <value>8573.004</value>
      </meteredValue>
      <meteredValue>
         <obis>1-1:2.8.1</obis>
         <readingDate>2021-12-14</readingDate>
         <time>2021-12-14T00:00:00</time>
         <value>3.515</value>
      </meteredValue>
      <meteredValue>
         <obis>1-1:5.8.2</obis>
         <readingDate>2021-12-14</readingDate>
         <time>2021-12-14T00:00:00</time>
         <value>1288.745</value>
      </meteredValue>
      <meteredValue>
         <obis>1-1:8.8.2</obis>
         <readingDate>2021-12-14</readingDate>
         <time>2021-12-14T00:00:00</time>
         <value>347.801</value>
      </meteredValue>
      <meteredValue>
         <obis>1-1:6.8.1</obis>
         <readingDate>2021-12-14</readingDate>
         <time>2021-12-14T00:00:00</time>
         <value>1.693</value>
      </meteredValue>
      <meteredValue>
         <obis>1-1:7.8.2</obis>
         <readingDate>2021-12-14</readingDate>
         <time>2021-12-14T00:00:00</time>
         <value>0.417</value>
      </meteredValue>
      <meteredValue>
         <obis>1-1:6.8.2</obis>
         <readingDate>2021-12-14</readingDate>
         <time>2021-12-14T00:00:00</time>
         <value>0.487</value>
      </meteredValue>
      <meteredValue>
         <obis>1-1:1.8.1</obis>
         <readingDate>2021-12-14</readingDate>
         <time>2021-12-14T00:00:00</time>
         <value>5081.679</value>
      </meteredValue>
      <meteredValue>
         <obis>1-1:2.8.2</obis>
         <readingDate>2021-12-14</readingDate>
         <time>2021-12-14T00:00:00</time>
         <value>1.958</value>
      </meteredValue>
      <meteredValue>
         <obis>1-1:7.8.1</obis>
         <readingDate>2021-12-14</readingDate>
         <time>2021-12-14T00:00:00</time>
         <value>0.592</value>
      </meteredValue>
      <meteredValue>
         <obis>1-1:8.8.1</obis>
         <readingDate>2021-12-14</readingDate>
         <time>2021-12-14T00:00:00</time>
         <value>181.899</value>
      </meteredValue>
      <meteredValue>
         <obis>1-1:5.8.1</obis>
         <readingDate>2021-12-14</readingDate>
         <time>2021-12-14T00:00:00</time>
         <value>799.109</value>
      </meteredValue>
      <meteredValue>
         <obis>1-1:5.8.2</obis>
         <readingDate>2022-01-01</readingDate>
         <time>2022-01-01T00:00:00</time>
         <value>1314.757</value>
      </meteredValue>
      <meteredValue>
         <obis>1-1:2.8.1</obis>
         <readingDate>2022-01-01</readingDate>
         <time>2022-01-01T00:00:00</time>
         <value>3.515</value>
      </meteredValue>
      <meteredValue>
         <obis>1-1:6.8.2</obis>
         <readingDate>2022-01-01</readingDate>
         <time>2022-01-01T00:00:00</time>
         <value>0.487</value>
      </meteredValue>
      <meteredValue>
         <obis>1-1:8.8.2</obis>
         <readingDate>2022-01-01</readingDate>
         <time>2022-01-01T00:00:00</time>
         <value>352.413</value>
      </meteredValue>
      <meteredValue>
         <obis>1-1:1.8.1</obis>
         <readingDate>2022-01-01</readingDate>
         <time>2022-01-01T00:00:00</time>
         <value>5211.12</value>
      </meteredValue>
      <meteredValue>
         <obis>1-1:1.8.2</obis>
         <readingDate>2022-01-01</readingDate>
         <time>2022-01-01T00:00:00</time>
         <value>8704.12</value>
      </meteredValue>
      <meteredValue>
         <obis>1-1:8.8.1</obis>
         <readingDate>2022-01-01</readingDate>
         <time>2022-01-01T00:00:00</time>
         <value>183.593</value>
      </meteredValue>
      <meteredValue>
         <obis>1-1:6.8.1</obis>
         <readingDate>2022-01-01</readingDate>
         <time>2022-01-01T00:00:00</time>
         <value>1.693</value>
      </meteredValue>
      <meteredValue>
         <obis>1-1:2.8.2</obis>
         <readingDate>2022-01-01</readingDate>
         <time>2022-01-01T00:00:00</time>
         <value>1.958</value>
      </meteredValue>
      <meteredValue>
         <obis>1-1:7.8.1</obis>
         <readingDate>2022-01-01</readingDate>
         <time>2022-01-01T00:00:00</time>
         <value>0.592</value>
      </meteredValue>
      <meteredValue>
         <obis>1-1:7.8.2</obis>
         <readingDate>2022-01-01</readingDate>
         <time>2022-01-01T00:00:00</time>
         <value>0.417</value>
      </meteredValue>
      <meteredValue>
         <obis>1-1:5.8.1</obis>
         <readingDate>2022-01-01</readingDate>
         <time>2022-01-01T00:00:00</time>
         <value>823.482</value>
      </meteredValue>
   </device>
   <device>
      <meteringcode>CH1012801234500000000000000006129</meteringcode>
      <meteredValue>
         <obis>1-1:2.8.1</obis>
         <readingDate>2021-12-14</readingDate>
         <time>2021-12-14T00:00:00</time>
         <status rvcd="2">Gestörter/unplausibler Wert</status>  
         <value>0</value>
      </meteredValue>
      <meteredValue>
         <obis>1-1:2.8.2</obis>
         <readingDate>2021-12-14</readingDate>
         <time>2021-12-14T00:00:00</time>
         <status rvcd="2">Gestörter/unplausibler Wert</status>  
         <value>0</value>
      </meteredValue>
      <meteredValue>
         <obis>1-1:8.8.1</obis>
         <readingDate>2021-12-14</readingDate>
         <time>2021-12-14T00:00:00</time>
         <status rvcd="2">Gestörter/unplausibler Wert</status>  
         <value>376.879</value>
      </meteredValue>
      <meteredValue>
         <obis>1-1:6.8.1</obis>
         <readingDate>2021-12-14</readingDate>
         <time>2021-12-14T00:00:00</time>
         <status rvcd="2">Gestörter/unplausibler Wert</status>  
         <value>0</value>
      </meteredValue>
      <meteredValue>
         <obis>1-1:8.8.2</obis>
         <readingDate>2021-12-14</readingDate>
         <time>2021-12-14T00:00:00</time>
         <status rvcd="2">Gestörter/unplausibler Wert</status>  
         <value>667.544</value>
      </meteredValue>
      <meteredValue>
         <obis>1-1:5.8.1</obis>
         <readingDate>2021-12-14</readingDate>
         <time>2021-12-14T00:00:00</time>
         <status rvcd="2">Gestörter/unplausibler Wert</status>  
         <value>518.914</value>
      </meteredValue>
      <meteredValue>
         <obis>1-1:6.8.2</obis>
         <readingDate>2021-12-14</readingDate>
         <time>2021-12-14T00:00:00</time>
         <status rvcd="2">Gestörter/unplausibler Wert</status>  
         <value>0</value>
      </meteredValue>
      <meteredValue>
         <obis>1-1:1.8.2</obis>
         <readingDate>2021-12-14</readingDate>
         <time>2021-12-14T00:00:00</time>
         <status rvcd="2">Gestörter/unplausibler Wert</status>  
         <value>5587.246</value>
      </meteredValue>
      <meteredValue>
         <obis>1-1:5.8.2</obis>
         <readingDate>2021-12-14</readingDate>
         <time>2021-12-14T00:00:00</time>
         <status rvcd="2">Gestörter/unplausibler Wert</status>  
         <value>1221.432</value>
      </meteredValue>
      <meteredValue>
         <obis>1-1:1.8.1</obis>
         <readingDate>2021-12-14</readingDate>
         <time>2021-12-14T00:00:00</time>
         <status rvcd="2">Gestörter/unplausibler Wert</status>  
         <value>3176.787</value>
      </meteredValue>
      <meteredValue>
         <obis>1-1:7.8.1</obis>
         <readingDate>2021-12-14</readingDate>
         <time>2021-12-14T00:00:00</time>
         <status rvcd="2">Gestörter/unplausibler Wert</status>  
         <value>0</value>
      </meteredValue>
      <meteredValue>
         <obis>1-1:7.8.2</obis>
         <readingDate>2021-12-14</readingDate>
         <time>2021-12-14T00:00:00</time>
         <status rvcd="2">Gestörter/unplausibler Wert</status>  
         <value>0</value>
      </meteredValue>
      <meteredValue>
         <obis>1-1:1.8.1</obis>
         <readingDate>2022-01-01</readingDate>
         <time>2022-01-01T00:00:00</time>
         <value>3266.703</value>
      </meteredValue>
      <meteredValue>
         <obis>1-1:6.8.2</obis>
         <readingDate>2022-01-01</readingDate>
         <time>2022-01-01T00:00:00</time>
         <value>0</value>
      </meteredValue>
      <meteredValue>
         <obis>1-1:5.8.1</obis>
         <readingDate>2022-01-01</readingDate>
         <time>2022-01-01T00:00:00</time>
         <value>527.413</value>
      </meteredValue>
      <meteredValue>
         <obis>1-1:8.8.1</obis>
         <readingDate>2022-01-01</readingDate>
         <time>2022-01-01T00:00:00</time>
         <value>385.967</value>
      </meteredValue>
      <meteredValue>
         <obis>1-1:5.8.2</obis>
         <readingDate>2022-01-01</readingDate>
         <time>2022-01-01T00:00:00</time>
         <value>1227.178</value>
      </meteredValue>
      <meteredValue>
         <obis>1-1:1.8.2</obis>
         <readingDate>2022-01-01</readingDate>
         <time>2022-01-01T00:00:00</time>
         <value>5693.705</value>
      </meteredValue>
      <meteredValue>
         <obis>1-1:7.8.1</obis>
         <readingDate>2022-01-01</readingDate>
         <time>2022-01-01T00:00:00</time>
         <value>0</value>
      </meteredValue>
      <meteredValue>
         <obis>1-1:2.8.1</obis>
         <readingDate>2022-01-01</readingDate>
         <time>2022-01-01T00:00:00</time>
         <value>0</value>
      </meteredValue>
      <meteredValue>
         <obis>1-1:2.8.2</obis>
         <readingDate>2022-01-01</readingDate>
         <time>2022-01-01T00:00:00</time>
         <value>0</value>
      </meteredValue>
      <meteredValue>
         <obis>1-1:6.8.1</obis>
         <readingDate>2022-01-01</readingDate>
         <time>2022-01-01T00:00:00</time>
         <value>0</value>
      </meteredValue>
      <meteredValue>
         <obis>1-1:7.8.2</obis>
         <readingDate>2022-01-01</readingDate>
         <time>2022-01-01T00:00:00</time>
         <value>0</value>
      </meteredValue>
      <meteredValue>
         <obis>1-1:8.8.2</obis>
         <readingDate>2022-01-01</readingDate>
         <time>2022-01-01T00:00:00</time>
         <value>682.866</value>
      </meteredValue>
   </device>
 </measuringManagement>

PS1:
param(
    [parameter(mandatory=$true)][string]$xmlpath
)
# XML Datei einlesen
$xml = new-Object XML; $xml.Load($xmlpath)
# Order ID (Fremdbelegnummer extrahieren)
$deviceid = $xml.measuringmanagement.device
# Für jedes OrderItem ...
$xml.measuringManagement.device | %{
    # und für jedes Subitem des Orderitem ...
    foreach($meteredValue in $_.meteredValue){
        # erstelle custom object mit den gewünschten Eigenschaften
		
        [pscustomobject] @{
            Messpunkt = $_.meteringcode
            Obis = $meteredValue.obis
	    meteredValue = $meteredValue.value
            Messdatum = get-date $meteredValue.readingDate -Format 'dd.MM.yyyy'  
            Status = $meteredValue.status            
          
        }
    }
} | export-csv "$([System.IO.Path]::GetDirectoryName($xmlPath))\$([System.IO.Path]::GetFilenameWithoutExtension($xmlPath)).csv" -Delimiter ";" -NoType -Encoding UTF8  

Aufruf über:
powershell -Executionpolicy Bypass -File "\\fsgdp\Eigene Dokumente\TestShell\converter.ps1" "\\fsgdp\Eigene Dokumente\TestShell\new.xml"  

Ergebnis:

"Messpunkt";"Obis";"meteredValue";"Messdatum";"Status"  
"CH1012801234500000000000000006129";"1-1:2.8.1";"0";"14.12.2021";"System.Xml.XmlElement"  
"CH1012801234500000000000000006129";"1-1:2.8.2";"0";"14.12.2021";"System.Xml.XmlElement"  
"CH1012801234500000000000000006129";"1-1:8.8.1";"376.879";"14.12.2021";"System.Xml.XmlElement"  
"CH1012801234500000000000000006129";"1-1:6.8.1";"0";"14.12.2021";"System.Xml.XmlElement"  
"CH1012801234500000000000000006129";"1-1:8.8.2";"667.544";"14.12.2021";"System.Xml.XmlElement"  
"CH1012801234500000000000000006129";"1-1:5.8.1";"518.914";"14.12.2021";"System.Xml.XmlElement"  
"CH1012801234500000000000000006129";"1-1:6.8.2";"0";"14.12.2021";"System.Xml.XmlElement"  
"CH1012801234500000000000000006129";"1-1:1.8.2";"5587.246";"14.12.2021";"System.Xml.XmlElement"  
"CH1012801234500000000000000006129";"1-1:5.8.2";"1221.432";"14.12.2021";"System.Xml.XmlElement"  
"CH1012801234500000000000000006129";"1-1:1.8.1";"3176.787";"14.12.2021";"System.Xml.XmlElement"  
"CH1012801234500000000000000006129";"1-1:7.8.1";"0";"14.12.2021";"System.Xml.XmlElement"  
"CH1012801234500000000000000006129";"1-1:7.8.2";"0";"14.12.2021";"System.Xml.XmlElement"  
"CH1012801234500000000000000006129";"1-1:1.8.1";"3266.703";"01.01.2022";  
"CH1012801234500000000000000006129";"1-1:6.8.2";"0";"01.01.2022";  
"CH1012801234500000000000000006129";"1-1:5.8.1";"527.413";"01.01.2022";  
"CH1012801234500000000000000006129";"1-1:8.8.1";"385.967";"01.01.2022";  
"CH1012801234500000000000000006129";"1-1:5.8.2";"1227.178";"01.01.2022";  
"CH1012801234500000000000000006129";"1-1:1.8.2";"5693.705";"01.01.2022";  
"CH1012801234500000000000000006129";"1-1:7.8.1";"0";"01.01.2022";  
"CH1012801234500000000000000006129";"1-1:2.8.1";"0";"01.01.2022";  
"CH1012801234500000000000000006129";"1-1:2.8.2";"0";"01.01.2022";  
"CH1012801234500000000000000006129";"1-1:6.8.1";"0";"01.01.2022";  
"CH1012801234500000000000000006129";"1-1:7.8.2";"0";"01.01.2022";  
"CH1012801234500000000000000006129";"1-1:8.8.2";"682.866";"01.01.2022";  
"CH1012801234500000000000000009875";"1-1:1.8.2";"8573.004";"14.12.2021";  
"CH1012801234500000000000000009875";"1-1:2.8.1";"3.515";"14.12.2021";  
"CH1012801234500000000000000009875";"1-1:5.8.2";"1288.745";"14.12.2021";  
"CH1012801234500000000000000009875";"1-1:8.8.2";"347.801";"14.12.2021";  
"CH1012801234500000000000000009875";"1-1:6.8.1";"1.693";"14.12.2021";  
"CH1012801234500000000000000009875";"1-1:7.8.2";"0.417";"14.12.2021";  
"CH1012801234500000000000000009875";"1-1:6.8.2";"0.487";"14.12.2021";  
"CH1012801234500000000000000009875";"1-1:1.8.1";"5081.679";"14.12.2021";  
"CH1012801234500000000000000009875";"1-1:2.8.2";"1.958";"14.12.2021";  
"CH1012801234500000000000000009875";"1-1:7.8.1";"0.592";"14.12.2021";  
"CH1012801234500000000000000009875";"1-1:8.8.1";"181.899";"14.12.2021";  
"CH1012801234500000000000000009875";"1-1:5.8.1";"799.109";"14.12.2021";  
"CH1012801234500000000000000009875";"1-1:5.8.2";"1314.757";"01.01.2022";  
"CH1012801234500000000000000009875";"1-1:2.8.1";"3.515";"01.01.2022";  
"CH1012801234500000000000000009875";"1-1:6.8.2";"0.487";"01.01.2022";  
"CH1012801234500000000000000009875";"1-1:8.8.2";"352.413";"01.01.2022";  
"CH1012801234500000000000000009875";"1-1:1.8.1";"5211.12";"01.01.2022";  
"CH1012801234500000000000000009875";"1-1:1.8.2";"8704.12";"01.01.2022";  
"CH1012801234500000000000000009875";"1-1:8.8.1";"183.593";"01.01.2022";  
"CH1012801234500000000000000009875";"1-1:6.8.1";"1.693";"01.01.2022";  
"CH1012801234500000000000000009875";"1-1:2.8.2";"1.958";"01.01.2022";  
"CH1012801234500000000000000009875";"1-1:7.8.1";"0.592";"01.01.2022";  
"CH1012801234500000000000000009875";"1-1:7.8.2";"0.417";"01.01.2022";  
"CH1012801234500000000000000009875";"1-1:5.8.1";"823.482";"01.01.2022";  
"CH1012801234500000000000000006129";"1-1:2.8.1";"0";"14.12.2021";"System.Xml.XmlElement"  
"CH1012801234500000000000000006129";"1-1:2.8.2";"0";"14.12.2021";"System.Xml.XmlElement"  
"CH1012801234500000000000000006129";"1-1:8.8.1";"376.879";"14.12.2021";"System.Xml.XmlElement"  
"CH1012801234500000000000000006129";"1-1:6.8.1";"0";"14.12.2021";"System.Xml.XmlElement"  
"CH1012801234500000000000000006129";"1-1:8.8.2";"667.544";"14.12.2021";"System.Xml.XmlElement"  
"CH1012801234500000000000000006129";"1-1:5.8.1";"518.914";"14.12.2021";"System.Xml.XmlElement"  
"CH1012801234500000000000000006129";"1-1:6.8.2";"0";"14.12.2021";"System.Xml.XmlElement"  
"CH1012801234500000000000000006129";"1-1:1.8.2";"5587.246";"14.12.2021";"System.Xml.XmlElement"  
"CH1012801234500000000000000006129";"1-1:5.8.2";"1221.432";"14.12.2021";"System.Xml.XmlElement"  
"CH1012801234500000000000000006129";"1-1:1.8.1";"3176.787";"14.12.2021";"System.Xml.XmlElement"  
"CH1012801234500000000000000006129";"1-1:7.8.1";"0";"14.12.2021";"System.Xml.XmlElement"  
"CH1012801234500000000000000006129";"1-1:7.8.2";"0";"14.12.2021";"System.Xml.XmlElement"  
"CH1012801234500000000000000006129";"1-1:1.8.1";"3266.703";"01.01.2022";  
"CH1012801234500000000000000006129";"1-1:6.8.2";"0";"01.01.2022";  
"CH1012801234500000000000000006129";"1-1:5.8.1";"527.413";"01.01.2022";  
"CH1012801234500000000000000006129";"1-1:8.8.1";"385.967";"01.01.2022";  
"CH1012801234500000000000000006129";"1-1:5.8.2";"1227.178";"01.01.2022";  
"CH1012801234500000000000000006129";"1-1:1.8.2";"5693.705";"01.01.2022";  
"CH1012801234500000000000000006129";"1-1:7.8.1";"0";"01.01.2022";  
"CH1012801234500000000000000006129";"1-1:2.8.1";"0";"01.01.2022";  
"CH1012801234500000000000000006129";"1-1:2.8.2";"0";"01.01.2022";  
"CH1012801234500000000000000006129";"1-1:6.8.1";"0";"01.01.2022";  
"CH1012801234500000000000000006129";"1-1:7.8.2";"0";"01.01.2022";  
"CH1012801234500000000000000006129";"1-1:8.8.2";"682.866";"01.01.2022";  

Content-ID: 1888273938

Url: https://administrator.de/forum/xml-in-csv-umwandeln-mit-powershell-1888273938.html

Ausgedruckt am: 22.12.2024 um 09:12 Uhr

em-pie
em-pie 11.02.2022 aktualisiert um 09:51:44 Uhr
Goto Top
Moin,

das Problem dürfte vermutlich sein, dass du keinen Node STATUS innerhalb des Knotens "meteredValue" hast!?
Das sind deine vier Werte:
         <obis>1-1:6.8.1</obis>
         <readingDate>2022-01-01</readingDate>
         <time>2022-01-01T00:00:00</time>
         <value>1.693</value>

du fragst im Powershell.Script aber noch den hier ab:
Status = $meteredValue.status

Edit: Mittendrin gibt es den dann doch - den hab ich übersehen. In dem Fall siehe @colinardo face-smile
colinardo
Lösung colinardo 11.02.2022 aktualisiert um 12:56:26 Uhr
Goto Top
Servus @Barick, willkommen auf Administrator.de!
<status rvcd="2">Gestörter/unplausibler Wert</status>
Da "status" ein Element ist welches mehr als nur einen einfachen Textknoten beinhaltet (er enthält auch ein Attribut!) wird beim zurückgeben von $meteredValue.status das gesamte Object also inklusive Attribut genommen und deswegen als Klassenname des Objects in die CSV geschrieben, denn die PS weiß ja nicht was du aus dem Object in der der Spalte haben willst. Wenn du nur den Textnode des Knotens brauchst musst du auch noch die entsprechende Property abrufen. Für den Element-Inhalt wäre dies hier innerText
Status = $meteredValue.status.innerText
bzw. alternativ geht auch '#text'
Status = $meteredValue.status.'#text'  
Grüße Uwe
Barick
Barick 11.02.2022 um 14:13:42 Uhr
Goto Top
Hello Zusammen

Vielen Dank für eure Antworten, damit hats geklappt. Hatte vermutet das es irgendetwas damit zu tun hat, bin aber nicht auf die Lösung gekommen.
Herzlichen Dank nochmals face-big-smile