C# XmlException beim Beispiel Strings

xparet0209

Ensign
Registriert
Okt. 2007
Beiträge
180
Ich habe folgenden String in der Variable "response".
PHP:
  <room roomId="1c280705-776b-45a8-bde1-5d328e990d9c">
    <data class="memento">
      <state class="manhattan:state" turn="2" start="red" current="blue" type="build">
        <red displayName="Spieler 1" points="0">
          <segment size="1" usable="3" retained="8"/>
          <segment size="2" usable="0" retained="6"/>
          <segment size="3" usable="2" retained="2"/>
          <segment size="4" usable="1" retained="2"/>
          <card slot="3"/>
          <card slot="4"/>
          <card slot="1"/>
          <card slot="0"/>
        </red>
        <blue displayName="Spieler 2" points="0">
          <segment size="1" usable="2" retained="9"/>
          <segment size="2" usable="2" retained="4"/>
          <segment size="3" usable="0" retained="4"/>
          <segment size="4" usable="2" retained="1"/>
          <card slot="3"/>
          <card slot="1"/>
          <card slot="2"/>
          <card slot="2"/>
        </blue>
        <move type="select">
          <select size="1" amount="2"/>
          <select size="2" amount="2"/>
          <select size="3" amount="0"/>
          <select size="4" amount="2"/>
        </move>
      </state>
    </data>
  </room>
  <room roomId="1c280705-776b-45a8-bde1-5d328e990d9c">
    <data class="memento">
      <state class="manhattan:state" turn="3" start="red" current="red" type="build">
        <red displayName="Spieler 1" points="0">
          <segment size="1" usable="3" retained="8"/>
          <segment size="2" usable="0" retained="6"/>
          <segment size="3" usable="2" retained="2"/>
          <segment size="4" usable="1" retained="2"/>
          <card slot="3"/>
          <card slot="4"/>
          <card slot="1"/>
          <card slot="0"/>
        </red>
        <blue displayName="Spieler 2" points="0">
          <segment size="1" usable="2" retained="9"/>
          <segment size="2" usable="2" retained="4"/>
          <segment size="3" usable="0" retained="4"/>
          <segment size="4" usable="1" retained="1"/>
          <card slot="3"/>
          <card slot="1"/>
          <card slot="2"/>
          <card slot="0"/>
        </blue>
        <tower city="2" slot="2" red="0" blue="4" owner="blue"/>
        <move type="build" city="2" slot="2" size="4"/>
      </state>
    </data>
  </room>
  <room roomId="1c280705-776b-45a8-bde1-5d328e990d9c">
    <data class="sc.framework.plugins.protocol.MoveRequest"/>
  </room>

Das wandel ich in einen XmlReader um:
PHP:
XmlTextReader xReader = new XmlTextReader(new StringReader(response));
xReader.Read();

Der Aufruf der Read()-Methode erzeugt folgende Fehlermeldung:
{"Es sind mehrere Stammelemente vorhanden. Zeile 34, Position 4."} System.Xml.XmlException
Wie kann ich nun vermeiden das solche Fehler auftreten?

mfg xparet0209
 
Steht doch eindeutig da. Gültiges XML darf nur ein Stammelement besitzen. In deinem Fall sind aber mehrere <room> vorhanden.

Lösung wäre die ganzen <room>-Elemente in ein übergeordetes Stammelement zu packen.
 
Ah ok jetzt habe ich erst verstanden was mit Stammelement gemeint ist.^^
Wenn ich nun alles in ein übergeordnetes Stammelement packe, muss ich doch nur am Anfang das Strings <Irgendwas> und am Ende </Irgendwas> einfügen oder?
 
Zurück
Oben