Erstellen von XML-Elementen ohne Namespace-Deklarationen

8

Ich versuche, der folgenden XML-Datei ein neues "PropertyGroup" -Element hinzuzufügen

%Vor%

Der von mir verwendete Code ist wie folgt (beachten Sie, dass andere Logik entfernt wurde):

%Vor%

Dies ergibt das folgende neue Element im XML-Dokument:

%Vor%

Wie entferne ich die Namespace-Deklaration für das Element?

    
BENBUN Coder 30.03.2011, 07:40
quelle

2 Antworten

10

Sie müssen den XML-Namespace für alle -Elemente angeben, die Sie dem DOM hinzufügen:

%Vor%

Wenn Sie dies nicht für ein Element tun (oder wenn Sie InnerXml so verwenden), erhält dieses Element den gefürchteten leeren Namensraum.

    
Jon 30.03.2011, 15:52
quelle
3

Der Grund dafür ist, dass Sie den Standardnamespace für das Dokument " Ссылка definiert haben "indem Sie die Namensraumdefinition auf dem Wurzelknoten haben:

%Vor%

Anschließend fügen Sie dem Dokument ein Element hinzu, das sich in keinem Namespace (dem Namespace 'null') befindet. Diese muss mit

qualifiziert sein %Vor%

Wenn dies nicht der Fall wäre, würde das neue Element im zuvor erwähnten Microsoft-Namespace enthalten sein - was es nicht ist (oder vielmehr - was Sie nicht gefragt haben).

Also entweder:

  • Sie möchten das neue Element tatsächlich haben im Microsoft-Namespace sein - in In diesem Fall musst du es sagen. Das Der einfachste Weg ist createElement und liefern Sie den Namespace, obwohl Sie können es wahrscheinlich explizit angeben mit einem xmlns-Attribut auf Ihrem InnerXml (das ist kein besonders nette Art, Knoten hinzuzufügen).

  • Sie wollen dieses Element wirklich der Null-Namespace, in diesem Fall Sie sind wahrscheinlich besser als alle zu qualifizieren die anderen Knoten, die nicht in der Null-Namespace mit einem Namespace Präfix.

Ich vermute, Sie wollen das erstere.

Einen schnellen Überblick über Namespaces finden Sie hier .

    
Rob Levine 30.03.2011 16:01
quelle

Tags und Links