Problem beim Parsen von XML im WiX-Installationsprogramm mit Xml.LoadData
Bei Versuchen, XML innerhalb eines WiX-Installationsprogramms zu analysieren, wird der Fehler „Daten am Root-Ebene ist ungültig. Zeile 1, Position 1“ wurde gefunden. Das zugrunde liegende XML enthält eine gültige Struktur, wie unten gezeigt:
<?xml version="1.0" encoding="utf-8"?> <Errors></Errors>
Das Problem entsteht durch ein verstecktes Zeichen , wahrscheinlich BOM (Byte Order Mark), das am Anfang des XML erscheint. Dieses Zeichen ist im Texteditor nicht sichtbar, kann jedoch die XML-Analyse stören.
Um dieses Problem zu beheben, können wir a verwenden Codeausschnitt, der nach dem Stücklistenzeichen sucht und es gegebenenfalls entfernt vorhanden:
string _byteOrderMarkUtf8 = Encoding.UTF8.GetString(Encoding.UTF8.GetPreamble()); if (xml.StartsWith(_byteOrderMarkUtf8)) { xml = xml.Remove(0, _byteOrderMarkUtf8.Length); }
Ein alternativer Ansatz, wie von einem anderen Benutzer vorgeschlagen, besteht jedoch darin, die gesamte erste Zeile zu entfernen es ist weniger präzise als die obige Methode.
Schlussfolgerung
Durch Entfernen Durch das unsichtbare Stücklistenzeichen aus dem XML kann der Parsing-Fehler behoben werden, sodass das XML erfolgreich analysiert und sein Inhalt verarbeitet werden kann.
Das obige ist der detaillierte Inhalt vonWie behebe ich den Fehler „Daten auf Stammebene sind ungültig' beim Parsen von XML in einem WiX-Installationsprogramm?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!