反序列化XML数据

时间:2018-06-13 11:31:20

标签: c# xml serialization deserialization

我的XML包含元素Z1ZRMPA两次。当TITLE =“Auftraggeber”时,以下(,, ...)包含的信息与TITLE =“Aufstellungsort”时不同。我使用deserialize方法并以可用的方式恢复对象的状态。如何将两个命名案例分开,以便我可以获得这两个信息?

这就是XML:

<?xml version="1.0" encoding="iso-8859-1"?>
<?xml-stylesheet type='text/xsl' href='pdfreport.xsl'?>
<ZRM01 SYSTEM="SAPMUC">
  <IDOC BEGIN="1" TRANSFORMID="20161105203212_1">     
    <Z1ZRMDB SEGMENT="1" GRUPPE="standard" VERSION="" STATUS="bearbeitet" TRANSFERSTATUS="verschicken" PBSTATUS="1110000" TEST="" QUELLE="SAPMUC" MULTITERMIN="0" DELETE="0" DELETEREASON="" EIGENDISPO="0" QRKURZCODE="" XPathTBconfig="/DEFINES/SAPMUC/EG/X438/X438-WPBA" VorlageFilename="VorlagenSAPmuc\438-0.xml" SNDPOR="SAPTR3" EDOCXID="23e1f388-3263-459a-af0c-0c6343544058" ADRESSKEY="c20c1433-3b82-8345-8966-b0ef3741e2b4" OWNER="eDocXServer /root/SAPMUC/BearbeiteSAPMUCAusgangsdaten" PASSWORD="tkhy70ph" PASSWORD2="pjafrjg3" TRANSFORMATION="20161105203212_1" LOKALDRUCK="J">
      <OBJNR>2709323</OBJNR>
      <MABEZ>438-WPBA</MABEZ>
      <AKZNR />
      <PERNR>105856</PERNR>
      <KOSTL>401421</KOSTL>
      <ERSDA>00000000</ERSDA>
      <Z1ZRMAU SEGMENT="1" TYP="">
        <KZAEN />
        <POSNR>001</POSNR>
        <ATNAM>M_GEBAEUDENUTZ</ATNAM>
        <CLASS>P_RV_KAUFLAND</CLASS>
        <MNAME>Gebäudenutzung</MNAME>
        <MWERT>SO</MWERT>
        <ATINN>0000001031</ATINN>
        <ATWRT>SO</ATWRT>
      </Z1ZRMAU>
      <Z1ZRMAU SEGMENT="1" TYP="">
        <KZAEN>X</KZAEN>
        <POSNR>005</POSNR>
        <ATNAM>M_WPNDAT</ATNAM>
        <CLASS>E_GEB_ALLG</CLASS>
        <MNAME>Nächste Wiederkehrende Prüfung</MNAME>
        <MWERT>01.11.2019</MWERT>
        <ATINN>0000000282</ATINN>
        <ATWRT />
      </Z1ZRMAU>
      <Z1ZRMAU SEGMENT="1" TYP="">
        <KZAEN />
        <POSNR>006</POSNR>
        <ATNAM>M_WPLDAT</ATNAM>
        <CLASS>E_GEB_ALLG</CLASS>
        <MNAME>Datum letzte Prüfung</MNAME>
        <MWERT />
        <ATINN>0000000276</ATINN>
        <ATWRT />
      </Z1ZRMAU>
      <Z1ZRMAU SEGMENT="1" TYP="">
        <KZAEN />
        <POSNR>007</POSNR>
        <ATNAM>M_VERTNR</ATNAM>
        <CLASS>E_GEB_ALLG</CLASS>
        <MNAME>Vertragsnummer</MNAME>
        <MWERT />
        <ATINN>0000000707</ATINN>
        <ATWRT />
      </Z1ZRMAU>
      <Z1ZRMAU SEGMENT="1" TYP="">
        <KZAEN />
        <POSNR>008</POSNR>
        <ATNAM>M_VERTDAT</ATNAM>
        <CLASS>E_GEB_ALLG</CLASS>
        <MNAME>Vertragsdatum</MNAME>
        <MWERT />
        <ATINN>0000000270</ATINN>
        <ATWRT />
      </Z1ZRMAU>
      <Z1ZRMAU SEGMENT="1" TYP="">
        <KZAEN />
        <POSNR>009</POSNR>
        <ATNAM>M_LPRUEFDAUER</ATNAM>
        <CLASS>E_GEB_ALLG</CLASS>
        <MNAME>Dauer letzte Prüfung</MNAME>
        <MWERT />
        <ATINN>0000000577</ATINN>
        <ATWRT />
      </Z1ZRMAU>
      <Z1ZRMAU SEGMENT="1" TYP="">
        <KZAEN />
        <POSNR>012</POSNR>
        <ATNAM>M_TUEV_OB</ATNAM>
        <CLASS>E_GEB_ALLG</CLASS>
        <MNAME>TÜV-eigenes Objekt</MNAME>
        <MWERT />
        <ATINN>0000000695</ATINN>
        <ATWRT />
      </Z1ZRMAU>
      <Z1ZRMAU SEGMENT="1" TYP="">
        <KZAEN />
        <POSNR>001</POSNR>
        <ATNAM>M_ANLGBEZ</ATNAM>
        <CLASS>E_ENTRAUCHUNG</CLASS>
        <MNAME>Anlagenbezeichnung</MNAME>
        <MWERT />
        <ATINN>0000001076</ATINN>
        <ATWRT />
      </Z1ZRMAU>
      <Z1ZRMAU SEGMENT="1" TYP="">
        <KZAEN />
        <POSNR>002</POSNR>
        <ATNAM>M_EINSATZORT</ATNAM>
        <CLASS>E_ENTRAUCHUNG</CLASS>
        <MNAME>Einsatzort</MNAME>
        <MWERT />
        <ATINN>0000001083</ATINN>
        <ATWRT />
      </Z1ZRMAU>
      <Z1ZRMAU SEGMENT="1" TYP="">
        <KZAEN />
        <POSNR>004</POSNR>
        <ATNAM>M_FLAECHE</ATNAM>
        <CLASS>E_ENTRAUCHUNG</CLASS>
        <MNAME>Fläche [m²]</MNAME>
        <MWERT />
        <ATINN>0000000791</ATINN>
        <ATWRT />
      </Z1ZRMAU>
      <Z1ZRMAU SEGMENT="1" TYP="">
        <KZAEN />
        <POSNR>005</POSNR>
        <ATNAM>M_ANZ_VENT</ATNAM>
        <CLASS>E_ENTRAUCHUNG</CLASS>
        <MNAME>Anzahl Ventilatoren</MNAME>
        <MWERT />
        <ATINN>0000001084</ATINN>
        <ATWRT />
      </Z1ZRMAU>
      <Z1ZRMAU SEGMENT="1" TYP="">
        <KZAEN />
        <POSNR>006</POSNR>
        <ATNAM>M_ANZ_KLAPPEN</ATNAM>
        <CLASS>E_ENTRAUCHUNG</CLASS>
        <MNAME>Anzahl EK Klappen</MNAME>
        <MWERT />
        <ATINN>0000001085</ATINN>
        <ATWRT />
      </Z1ZRMAU>
      <Z1ZRMAU SEGMENT="1" TYP="">
        <KZAEN />
        <POSNR>009</POSNR>
        <ATNAM>M_AUSLOESEART</ATNAM>
        <CLASS>E_ENTRAUCHUNG</CLASS>
        <MNAME>Auslöseart</MNAME>
        <MWERT />
        <ATINN>0000001088</ATINN>
        <ATWRT />
      </Z1ZRMAU>
      <Z1ZRMAU SEGMENT="1" TYP="">
        <KZAEN />
        <POSNR>010</POSNR>
        <ATNAM>M_ERSCHWERFKT</ATNAM>
        <CLASS>E_ENTRAUCHUNG</CLASS>
        <MNAME>Erschwernisfaktor</MNAME>
        <MWERT />
        <ATINN>0000001082</ATINN>
        <ATWRT />
      </Z1ZRMAU>
      <Z1ZRMPA SEGMENT="1" DRUCK="0" ORDER="0" VISIBLE="1" ANSPRECHPARTNER="" POSTFACHADRESSE="0" XPathTBconfig="/DEFINES/SAPMUC/EG/PARVWNODES/AG" KOPIEN="1" TITLE="Auftraggeber" ENABLED="N" COLOR="ff00ffff" RESULTMAILTESTER="-2" NETDOCX="N">
        <KZAEN />
        <POSNR>000000</POSNR>
        <PARVW>AG</PARVW>
        <PARNR>100212903</PARNR>
        <NAME_LIST />
        <NAME1>Stirner GmbH</NAME1>
        <NAME2 />
        <NAME3 />
        <NAME4 />
        <CITY1>Perach</CITY1>
        <CITY2 />
        <POST_CODE1>84567</POST_CODE1>
        <POST_CODE2 />
        <STREET>Hauptstr.</STREET>
        <PO_BOX />
        <HOUSE_NUM1>23</HOUSE_NUM1>
        <COUNTRY>DE</COUNTRY>
        <LANGU>D</LANGU>
        <REGION>BY</REGION>
        <DEFLT_COMM />
        <REMARK />
        <Z1ZRMTE SEGMENT="1">
          <KZAEN />
          <COMM_TYPE>TEL</COMM_TYPE>
          <FLGDEFAULT>X</FLGDEFAULT>
          <TEL_NUMBER>08670/985580</TEL_NUMBER>
          <ETL_EXTENS />
          <REMARK />
        </Z1ZRMTE>
        <Z1ZRMTE SEGMENT="1">
          <KZAEN />
          <COMM_TYPE>FAX</COMM_TYPE>
          <FLGDEFAULT>X</FLGDEFAULT>
          <TEL_NUMBER>08670/98558</TEL_NUMBER>
          <ETL_EXTENS />
          <REMARK />
        </Z1ZRMTE>
        <Z1ZRMSM SEGMENT="1">
          <KZAEN />
          <FLGDEFAULT>X</FLGDEFAULT>
          <SMTP_ADDR>info@stirner-gmbh.de</SMTP_ADDR>
          <REMARK />
        </Z1ZRMSM>
      </Z1ZRMPA>                       
      <Z1ZRMPA SEGMENT="1" DRUCK="0" ORDER="4" VISIBLE="1" ANSPRECHPARTNER="" POSTFACHADRESSE="0" XPathTBconfig="/DEFINES/SAPMUC/EG/PARVWNODES/SA" KOPIEN="0" TITLE="Aufstellungsort" ENABLED="J" COLOR="ffffaa00" RESULTMAILTESTER="-2" NETDOCX="N">
        <KZAEN>X</KZAEN>
        <POSNR>000000</POSNR>
        <PARVW>SA</PARVW>
        <PARNR>100563034</PARNR>
        <NAME_LIST>Innpassage</NAME_LIST>
        <NAME1>Textilmarkt</NAME1>
        <NAME2>TVP12447</NAME2>
        <NAME3 />
        <NAME4 />
        <CITY1>Neuötting</CITY1>
        <CITY2 />
        <POST_CODE1>84524</POST_CODE1>
        <POST_CODE2 />
        <STREET>Simbacher Str.</STREET>
        <PO_BOX />
        <HOUSE_NUM1>55</HOUSE_NUM1>
        <COUNTRY>DE</COUNTRY>
        <LANGU>D</LANGU>
        <REGION>BY</REGION>
        <DEFLT_COMM />
        <REMARK />
        <Z1ZRMTE SEGMENT="1">
          <KZAEN />
          <COMM_TYPE>TEL</COMM_TYPE>
          <FLGDEFAULT />
          <TEL_NUMBER />
          <ETL_EXTENS />
          <REMARK />
        </Z1ZRMTE>
        <Z1ZRMSM SEGMENT="1">
          <KZAEN />
          <FLGDEFAULT />
          <SMTP_ADDR />
          <REMARK />
        </Z1ZRMSM>
      </Z1ZRMPA>         
      <PRFBER VALID="J" AUSDRUCK="lokal" KORREKTUR="" LISTE="" BEWERTUNG="G" BEWERTUNG_BESEITIGT="O">          
          <ANLAGE>
            <PRFTXT REF="0" ENTRBEREICH="" GRUNDFLAECHE="" HERSTELLER="" STEUERZENTRALE="" RWGTYP="" ANZAUSLSTELLEN="" ANZRAUCHABZUEGE="" MANANSTEUERUNG="" AUTOANSTEUERUNG="" AUSLOESEEINR="" SOLLOEFFNUNG="" ISTOEFFNUNG="" />
            <PRFTXT REF="1" ENTRBEREICH="Textilmarkt gesamt" GRUNDFLAECHE="1626" HERSTELLER="Essmann" STEUERZENTRALE="NAS-E8G 12Volt" RWGTYP="" ANZAUSLSTELLEN="" ANZRAUCHABZUEGE="9" MANANSTEUERUNG="2" AUTOANSTEUERUNG="9" AUSLOESEEINR="pyrotechnisch" SOLLOEFFNUNG="10" ISTOEFFNUNG="18,8" />
            <PRFTXT REF="2" ENTRBEREICH="Textilmarkt Bestand" GRUNDFLAECHE="810" HERSTELLER="Essmann" STEUERZENTRALE="NAS-E8G 12Volt" RWGTYP="RAK 30 100/250 810N" ANZAUSLSTELLEN="" ANZRAUCHABZUEGE="5" MANANSTEUERUNG="2" AUTOANSTEUERUNG="5" AUSLOESEEINR="pyrotechnisch" SOLLOEFFNUNG="5" ISTOEFFNUNG="11,6" />
            <PRFTXT REF="3" ENTRBEREICH="Textilmarkt Erweiterung" GRUNDFLAECHE="416" HERSTELLER="Essmann" STEUERZENTRALE="NAS-E8G 12Volt" RWGTYP="LK-Classik 100/250 30P" ANZAUSLSTELLEN="" ANZRAUCHABZUEGE="4" MANANSTEUERUNG="2" AUTOANSTEUERUNG="4" AUSLOESEEINR="pyrotechnisch" SOLLOEFFNUNG="2,6" ISTOEFFNUNG="7,2" />
          </ANLAGE>
          <PRFTXT VALID="J" TYP="" REF="0" NR="" MEQ="N" TITEL="" RFID="" GEWICHT="0" SELECTED="" STATIST="" NUMMER="" KATEGORIE="" O-MANGEL="" X-MANGEL="" URSACHE="" VERWEIS="" VDS-KAT="" TUEV-KAT="" MANGELORT="" FALL="" />
          <PRFHNW REF="1" SELECTED="N">Teilbereiche wurden erneuert, umgebaut oder erweitert.</PRFHNW>
          <PRFHNW REF="2" SELECTED="N" Z1ZRMPA="ZH">Die Aufsichtsbehörde erhält eine Kopie dieser Bescheinigung.</PRFHNW>
          <PRFHNW REF="3" SELECTED="N">Die Mängel der vorhergehenden Prüfung wurden beseitigt.</PRFHNW>            
          <PRFTXT NUMMER="" ROWTYPE="Mangel" PATTERN="@KATEGORIE[../@KATEGORIE='Grundlage']" PRINT_ENUM="" REF="4" TREE_PROPERTY="" VERSION_TEXTLISTE="" QUELLE_TEXTLISTE="Teilberichte" URSACHE="" FRIST="" INFO="" VERWEIS="" MANGELORT="" ANMERKUNG="" KATEGORIE="Grundlage" X-MANGEL="N" O-MANGEL="N" S-MANGEL="N" BETRIEBSBEREICH="" TITLE="GP0301 Sicherheitsanlagenprüfverordnung" STATIST="GP0301" GEWICHT="Grundlage" TUEV-KAT="8303" VDS-KAT="" KZAEN="N" PLUGIN="66a7ce8a-b21f-42a8-8754-983910b77d2c" MEQ="N" BUNDESLAND="09" PRÜFUNG="438-WPBA" OBJEKTART="438" EG_TABLE_COL01="" EG_TABLE_COL02="" EG_TABLE_COL03="" VALID="" COUNTSTATIST="" SELECTED="" DEFAULT_PLUGIN="" KENNUNG="" LAND="">§ 2 Sicherheitsanlagen-Prüfverordnung des Landes Bayern (SPrüfV)</PRFTXT>
          <PRFTXT NUMMER="" ROWTYPE="Zwischenüberschrift" PATTERN="@KATEGORIE[../@KATEGORIE='Ergebnis']" PRINT_ENUM="" REF="5" TREE_PROPERTY="" VERSION_TEXTLISTE="" QUELLE_TEXTLISTE="" URSACHE="" FRIST="" INFO="" VERWEIS="" MANGELORT="" ANMERKUNG="" KATEGORIE="" X-MANGEL="" O-MANGEL="" S-MANGEL="" BETRIEBSBEREICH="" TITLE="" STATIST="" GEWICHT="" TUEV-KAT="" VDS-KAT="" KZAEN="" PLUGIN="" MEQ="" BUNDESLAND="" PRÜFUNG="" OBJEKTART="" EG_TABLE_COL01="" EG_TABLE_COL02="" EG_TABLE_COL03="" VALID="" COUNTSTATIST="" SELECTED="" DEFAULT_PLUGIN="" KENNUNG="" LAND="">Ergebnis der Prüfung</PRFTXT>
          <PRFTXT NUMMER="" ROWTYPE="Mangel" PATTERN="@KATEGORIE[../@KATEGORIE='Ergebnis']" PRINT_ENUM="" REF="6" TREE_PROPERTY="" VERSION_TEXTLISTE="" QUELLE_TEXTLISTE="" URSACHE="" FRIST="" INFO="" VERWEIS="" MANGELORT=" " ANMERKUNG=" " KATEGORIE="Ergebnis" X-MANGEL="N" O-MANGEL="N" S-MANGEL="N" BETRIEBSBEREICH="" TITLE="EP0330 SV-Pr Mängel keine Bescheinigung" STATIST="EP0330" GEWICHT="Ergebnis" TUEV-KAT=" " VDS-KAT=" " KZAEN="N" PLUGIN="66a7ce8a-b21f-42a8-8754-983910b77d2c" MEQ="" BUNDESLAND="" PRÜFUNG="" OBJEKTART="" EG_TABLE_COL01="" EG_TABLE_COL02="" EG_TABLE_COL03="" VALID="J" COUNTSTATIST="" SELECTED="N" DEFAULT_PLUGIN="" KENNUNG="" LAND="">Um die Wirksamkeit und Betriebssicherheit der geprüften Anlage nach SPrüfV bescheinigen zu können, ist eine Nachprüfung durch einen Prüfsachverständigen durchführen zu lassen.</PRFTXT>
          <PRFTXT NUMMER="" ROWTYPE="Zwischenüberschrift" PATTERN="@KATEGORIE[../@KATEGORIE='Bewertung']" PRINT_ENUM="" REF="7" TREE_PROPERTY="" VERSION_TEXTLISTE="" QUELLE_TEXTLISTE="" URSACHE="" FRIST="" INFO="" VERWEIS="" MANGELORT="" ANMERKUNG="" KATEGORIE="" X-MANGEL="" O-MANGEL="" S-MANGEL="" BETRIEBSBEREICH="" TITLE="" STATIST="" GEWICHT="" TUEV-KAT="" VDS-KAT="" KZAEN="" PLUGIN="" MEQ="" BUNDESLAND="" PRÜFUNG="" OBJEKTART="" EG_TABLE_COL01="" EG_TABLE_COL02="" EG_TABLE_COL03="" VALID="" COUNTSTATIST="" SELECTED="" DEFAULT_PLUGIN="" KENNUNG="" LAND="">Bewertungskriterien</PRFTXT>
          <PRFTXT NUMMER="-" ROWTYPE="Mangel" PATTERN="@KATEGORIE[../@KATEGORIE='Bewertung']" PRINT_ENUM="" REF="8" TREE_PROPERTY="" VERSION_TEXTLISTE="" QUELLE_TEXTLISTE="" URSACHE="" FRIST="" INFO="" VERWEIS="Fassung vom 1.1.2008" MANGELORT="" ANMERKUNG="" KATEGORIE="Bewertung" X-MANGEL="N" O-MANGEL="N" S-MANGEL="N" BETRIEBSBEREICH="" TITLE="BK0323 Verkaufsstättenverordnung" STATIST="BK0323" GEWICHT="Bewertung" TUEV-KAT="" VDS-KAT="" KZAEN="N" PLUGIN="66a7ce8a-b21f-42a8-8754-983910b77d2c" MEQ="" BUNDESLAND="" PRÜFUNG="" OBJEKTART="" EG_TABLE_COL01="" EG_TABLE_COL02="" EG_TABLE_COL03="" VALID="J" COUNTSTATIST="219" SELECTED="" DEFAULT_PLUGIN="" KENNUNG="" LAND="">Verordnung über den Bau und Betrieb von Verkaufsstätten (Verkaufsstättenverordnung - VkV)</PRFTXT>
          <PRFTXT NUMMER="-" ROWTYPE="Mangel" PATTERN="@KATEGORIE[../@KATEGORIE='Bewertung']" PRINT_ENUM="" REF="9" TREE_PROPERTY="" VERSION_TEXTLISTE="" QUELLE_TEXTLISTE="" URSACHE="" FRIST="" INFO="" VERWEIS="" MANGELORT="" ANMERKUNG="" KATEGORIE="Bewertung" X-MANGEL="N" O-MANGEL="N" S-MANGEL="N" BETRIEBSBEREICH="" TITLE="BK0100 ---- freier Text ----" STATIST="BK0100" GEWICHT="Bewertung" TUEV-KAT="" VDS-KAT="" KZAEN="N" PLUGIN="66a7ce8a-b21f-42a8-8754-983910b77d2c" MEQ="" BUNDESLAND="" PRÜFUNG="" OBJEKTART="" EG_TABLE_COL01="" EG_TABLE_COL02="" EG_TABLE_COL03="" VALID="J" COUNTSTATIST="7080" SELECTED="" DEFAULT_PLUGIN="" KENNUNG="" LAND="">Bescheid über die Erweiterung des Einkaufszentrums Obermeier GmbH vom 22.04.2016, BV2016/0150</PRFTXT>
          <PRFTXT NUMMER="-" ROWTYPE="Mangel" PATTERN="@KATEGORIE[../@KATEGORIE='Bewertung']" PRINT_ENUM="" REF="10" TREE_PROPERTY="" VERSION_TEXTLISTE="" QUELLE_TEXTLISTE="" URSACHE="" FRIST="" INFO="" VERWEIS="" MANGELORT="" ANMERKUNG="" KATEGORIE="Bewertung" X-MANGEL="N" O-MANGEL="N" S-MANGEL="N" BETRIEBSBEREICH="" TITLE="BK0100 ---- freier Text ----" STATIST="BK0100" GEWICHT="Bewertung" TUEV-KAT="" VDS-KAT="" KZAEN="N" PLUGIN="66a7ce8a-b21f-42a8-8754-983910b77d2c" MEQ="" BUNDESLAND="" PRÜFUNG="" OBJEKTART="" EG_TABLE_COL01="" EG_TABLE_COL02="" EG_TABLE_COL03="" VALID="J" COUNTSTATIST="7080" SELECTED="" DEFAULT_PLUGIN="" KENNUNG="" LAND="">Brandschutznachweis, BV Erweiterung Inncenter, HVB Ingenieure GmbH vom 14.03.2016</PRFTXT>
          <PRFTXT NUMMER="" ROWTYPE="Zwischenüberschrift" PATTERN="@KATEGORIE[../@KATEGORIE='Mangel' and ../@GEWICHT[not(contains(.,'Beseitigt'))]]" PRINT_ENUM="" REF="17" TREE_PROPERTY="" VERSION_TEXTLISTE="" QUELLE_TEXTLISTE="" URSACHE="" FRIST="" INFO="" VERWEIS="" MANGELORT="" ANMERKUNG="" KATEGORIE="" X-MANGEL="" O-MANGEL="" S-MANGEL="" BETRIEBSBEREICH="" TITLE="" STATIST="" GEWICHT="" TUEV-KAT="" VDS-KAT="" KZAEN="" PLUGIN="" MEQ="" BUNDESLAND="" PRÜFUNG="" OBJEKTART="" EG_TABLE_COL01="" EG_TABLE_COL02="" EG_TABLE_COL03="" VALID="" COUNTSTATIST="" SELECTED="" DEFAULT_PLUGIN="" KENNUNG="" LAND="">Mängel</PRFTXT>
          <PRFTXT NUMMER="1" ROWTYPE="Mangel" PATTERN="@KATEGORIE[../@KATEGORIE='Mangel' and ../@GEWICHT[not(contains(.,'Beseitigt'))]]" PRINT_ENUM="" REF="18" TREE_PROPERTY="" VERSION_TEXTLISTE="" QUELLE_TEXTLISTE="" URSACHE="Ausführungsmangel" FRIST="0" INFO="" VERWEIS="" MANGELORT="Neu installierte Rauchabzugsklappen" ANMERKUNG="" KATEGORIE="Mangel" X-MANGEL="" O-MANGEL="" S-MANGEL="" BETRIEBSBEREICH="" TITLE="ER1000 -- nicht belegt --" STATIST="ER1000" GEWICHT="1" TUEV-KAT="" VDS-KAT="" KZAEN="N" PLUGIN="3df6a705-e2e3-4ffe-93b5-71ef413c2b2f" MEQ="" BUNDESLAND="" PRÜFUNG="" OBJEKTART="" EG_TABLE_COL01="" EG_TABLE_COL02="" EG_TABLE_COL03="" VALID="J" COUNTSTATIST="784" SELECTED="" DEFAULT_PLUGIN="" KENNUNG="" LAND="">Es erfolgt keine Auslösung der Rauchabzugsklappen über die Rauchmelder.</PRFTXT>
          <PRFTXT NUMMER="2" ROWTYPE="Mangel" PATTERN="@KATEGORIE[../@KATEGORIE='Mangel' and ../@GEWICHT[not(contains(.,'Beseitigt'))]]" PRINT_ENUM="" REF="19" TREE_PROPERTY="" VERSION_TEXTLISTE="" QUELLE_TEXTLISTE="" URSACHE="Betrieb" FRIST="0" INFO="" VERWEIS="" MANGELORT="Steuerzentrale" ANMERKUNG="" KATEGORIE="Mangel" X-MANGEL="" O-MANGEL="" S-MANGEL="" BETRIEBSBEREICH="" TITLE="ER1000 -- nicht belegt --" STATIST="ER1000" GEWICHT="1" TUEV-KAT="" VDS-KAT="" KZAEN="N" PLUGIN="3df6a705-e2e3-4ffe-93b5-71ef413c2b2f" MEQ="" BUNDESLAND="" PRÜFUNG="" OBJEKTART="" EG_TABLE_COL01="" EG_TABLE_COL02="" EG_TABLE_COL03="" VALID="J" COUNTSTATIST="784" SELECTED="" DEFAULT_PLUGIN="" KENNUNG="" LAND="">Die Steuerzentrale mit 12 Volt  ist nicht für die verwendeten Rauchmelder mit 24 Volt  geiegnet.</PRFTXT>
          <PRFTXT NUMMER="3" ROWTYPE="Mangel" PATTERN="@KATEGORIE[../@KATEGORIE='Mangel' and ../@GEWICHT[not(contains(.,'Beseitigt'))]]" PRINT_ENUM="" REF="20" TREE_PROPERTY="" VERSION_TEXTLISTE="" QUELLE_TEXTLISTE="" URSACHE="Ausführungsmangel" FRIST="0" INFO="" VERWEIS="" MANGELORT="Alle Rauchmelder" ANMERKUNG="" KATEGORIE="Mangel" X-MANGEL="" O-MANGEL="" S-MANGEL="" BETRIEBSBEREICH="" TITLE="ER1000 -- nicht belegt --" STATIST="ER1000" GEWICHT="1" TUEV-KAT="" VDS-KAT="" KZAEN="N" PLUGIN="3df6a705-e2e3-4ffe-93b5-71ef413c2b2f" MEQ="" BUNDESLAND="" PRÜFUNG="" OBJEKTART="" EG_TABLE_COL01="" EG_TABLE_COL02="" EG_TABLE_COL03="" VALID="J" COUNTSTATIST="784" SELECTED="" DEFAULT_PLUGIN="" KENNUNG="" LAND="">Die Rauchmelder wurden senkrecht und nicht waggerecht montiert. Eine sichere Detektion ist somit nicht gegeben.</PRFTXT>
          <PRFTXT NUMMER="4" ROWTYPE="Mangel" PATTERN="@KATEGORIE[../@KATEGORIE='Mangel' and ../@GEWICHT[not(contains(.,'Beseitigt'))]]" PRINT_ENUM="" REF="21" TREE_PROPERTY="" VERSION_TEXTLISTE="" QUELLE_TEXTLISTE="" URSACHE="ohne Angabe" FRIST="0" INFO="" VERWEIS="" MANGELORT="Steuerzentrale" ANMERKUNG="" KATEGORIE="Mangel" X-MANGEL="" O-MANGEL="" S-MANGEL="" BETRIEBSBEREICH="" TITLE="ER1000 -- nicht belegt --" STATIST="ER1000" GEWICHT="1" TUEV-KAT="" VDS-KAT="" KZAEN="N" PLUGIN="3df6a705-e2e3-4ffe-93b5-71ef413c2b2f" MEQ="" BUNDESLAND="" PRÜFUNG="" OBJEKTART="" EG_TABLE_COL01="" EG_TABLE_COL02="" EG_TABLE_COL03="" VALID="J" COUNTSTATIST="784" SELECTED="" DEFAULT_PLUGIN="" KENNUNG="" LAND="">Die Batterie ist defekt.</PRFTXT>
          <PRFTXT NUMMER="5" ROWTYPE="Mangel" PATTERN="@KATEGORIE[../@KATEGORIE='Mangel' and ../@GEWICHT[not(contains(.,'Beseitigt'))]]" PRINT_ENUM="" REF="22" TREE_PROPERTY="" VERSION_TEXTLISTE="" QUELLE_TEXTLISTE="" URSACHE="Ausführungsmangel" FRIST="0" INFO="" VERWEIS="" MANGELORT="Steuerzentrale" ANMERKUNG="" KATEGORIE="Mangel" X-MANGEL="" O-MANGEL="" S-MANGEL="" BETRIEBSBEREICH="" TITLE="ER1000 -- nicht belegt --" STATIST="ER1000" GEWICHT="1" TUEV-KAT="" VDS-KAT="" KZAEN="N" PLUGIN="3df6a705-e2e3-4ffe-93b5-71ef413c2b2f" MEQ="" BUNDESLAND="" PRÜFUNG="" OBJEKTART="" EG_TABLE_COL01="" EG_TABLE_COL02="" EG_TABLE_COL03="" VALID="J" COUNTSTATIST="784" SELECTED="" DEFAULT_PLUGIN="" KENNUNG="" LAND="">Es erfolgt keiene Störanzeige bei Batterieausfall.</PRFTXT>                         
        </PRFERG>
      </PRFBER>        
    </Z1ZRMDB>
  </IDOC>
</ZRM01>    

这是重现XML结构的C#类(这是我感兴趣的信息):

using System;
using System.Xml;
using System.Xml.Serialization;
using System.ComponentModel;


namespace EdocX_Test_Using
{
    //ZRM01 Root Environment
    [Serializable()] 
    [XmlRoot(ElementName = "ZRM01")]
    public partial class Document
    {
        [XmlElement()]
        public ZRM01IDOC IDOC { get; set; }
    }

    //IDOC
    [Serializable()]
    public partial class ZRM01IDOC
    {
        [XmlElement()]
        public ZRM01IDOCZ1ZRMDB Z1ZRMDB { get; set; }
    }

    //IDOC Elements
    [Serializable()]
    public partial class ZRM01IDOCZ1ZRMDB
    {
        public string MABEZ { get; set; } // Materialnummer
        public string OBJNR { get; set; } // Equipmentnummer

        [XmlElement()]
        public ZRM01IDOCZ1ZRMDBZ1ZRMPA Z1ZRMPA { get; set; }

        [XmlElement()]
        public ZRM01IDOCZ1ZRMDBZ1ZRMAU Z1ZRMAU { get; set; }

        [XmlElement()]
        public ZRM01IDOCZ1ZRMDBPRFBER PRFBER { get; set; }
    }

    //Z1ZRMPA --> Mandant / Gebäude
    [Serializable()]
    public partial class ZRM01IDOCZ1ZRMDBZ1ZRMPA
    {
        [XmlAttribute()]
        public string TITLE { get; set; } // "Auftraggeber" "Aufstellungsort"

        [XmlElement()]
        public string PARNR { get; set; } // Parnr. (Mandant)

        [XmlElement()]
        public string NAME1 { get; set; } // Name

        [XmlElement()]
        public string NAME2 { get; set; } // Name

        [XmlElement()]
        public string CITY1 { get; set; } // Stadt

        [XmlElement()]
        public string POST_CODE1 { get; set; } // PLZ

        [XmlElement()]
        public string STREET { get; set; } // Straße

        [XmlElement()]
        public string HOUSE_NUM1 { get; set; } // Hausnummer

        [XmlElement()]
        public string REGION { get; set; } // Region

        [XmlElement()]
        public string COUNTRY { get; set; } // Land

    }

    //Z1ZRMAU
    [Serializable()]
    public partial class ZRM01IDOCZ1ZRMDBZ1ZRMAU
    {
        [XmlElement()]
        public string MNAME { get; set; } // "Datum letze Prüfung" "Nächste Wiederkehrende Prüfung"

        [XmlElement()]
        public string MWERT { get; set; } // Durchführungsdatum bzw Fälligkeit
    }

    //PRFBER Elemts
    [Serializable()]
    public partial class ZRM01IDOCZ1ZRMDBPRFBER
    {
        [XmlElement()]
        public ZRM01IDOCZ1ZRMDBPRFBERPRFERG PRFERG { get; set; }
    }

    //PRFERG Elements
    [Serializable()]
    public partial class ZRM01IDOCZ1ZRMDBPRFBERPRFERG
    {
        [XmlElement()]
        public ZRM01IDOCZ1ZRMDBPRFBERPRFERGANLAGE ANLAGE { get; set; }
    }

    //ANLAGE
    [Serializable()]
    public partial class ZRM01IDOCZ1ZRMDBPRFBERPRFERGANLAGE
    {
        [XmlAttribute()]
        public string REF { get; set; } // Anzahl Anlagen

        [XmlAttribute()]
        public string HERSTELLER { get; set; } // Hersteller Anlage

        [XmlAttribute()]
        public string ENTBEREICH { get; set; } // Interne Bezeichnung Anlage
    }

    //PRFTXT
    [Serializable()]
    public partial class ZRM01IDOCZ1ZRMDBPRFBERPRFERGPRFTXT
    {
        [XmlAttribute()]
        public string KATEGORIE { get; set; } // A"Grundlage" < ... >

        [XmlAttribute()]
        public string ROWTYPE { get; set; } // "Zwischenüberschrift" (für Mangel ja/nein) "Mangel" (für Bemerkungstext)

        [XmlAttribute()]
        public string PATTERN { get; set; } // "@KATEGORIE[../@KATEGORIE='Mangel' and ../@GEWICHT[not(contains(.,'Beseitigt'))]]" < Mängel > bzw < ... >
    }
}

这是我的计划:

using System;
using System.IO;
using System.Xml;
using System.Xml.Serialization;


namespace EdocX_Test_Using
{
    class Program
    {
        static void Main(string[] args)
        {
            Program test = new Program();
            foreach (var file in Directory.GetFiles(@"N:\EGS_SDRE\OB\19_Schnittstellen_eDocX_ITAS\06_Matching EdocX-Objektbrief\01_exemplarische_XMLs_fuer_den_Import\RWA-Anlage", "*.xml"))
            {
                Console.WriteLine(file);
                if (!File.Exists(file)) { Console.WriteLine("Datei existiert nicht"); }
                test.deserializeobject(file);              
                break; // Breaks after first for now
            }           
            Console.ReadKey();

        }

        private void deserializeobject(string filename)
        {
            // new instance of XMLSerializer --> specifiying type
            var serializer = new XmlSerializer(typeof(Document));

            // read the XML document with a FileStream
            using (var fs = new FileStream(filename, FileMode.Open))
            using (var reader = XmlReader.Create(fs))
            {          
                // restore the object's state using the deserialize method
                var i = (Document)serializer.Deserialize(reader);
            }
        }
    }
}

1 个答案:

答案 0 :(得分:0)

我建议您通过复制所有示例XML文件来重新生成xml dto类,然后在visual studio中执行EDIT / PASTE SPECIAL / PASTE AS XML类。这将为您提供准确和正确的dto课程。然后,您可以正确地反序列化整个对象模型。