Autor Beitrag
bfmeb
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 28



BeitragVerfasst: Do 03.09.09 11:24 
Hallo,

ich bin hier bald am verrückt werden. Ich möchte "NUR" das Attribut xmlns welches die Xml-Namespacedeklaration enthält aus meinem Dokument löschen.

Ich habe folgende Varianten probiert:

1 Attribut xmlns aus der AttributCollection des root Knotens löschen

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
        private string ReadXml()
        {
            XmlDocument doc = new XmlDocument();
            doc.Load(parameter.SourceFilename);
            XmlAttributeCollection attributeList = doc.DocumentElement.Attributes;
            attributeList.RemoveAt(attributeList.Count-1);
            return doc.InnerXml; 
//AttributCollection hat kein Attribut xmlns mehr, aber string doc.InnerXml logischerweise schon, wie bekomme ich das weg, ich muss den string verändern?
        }


2 Vor der Serialisierung des Strings in ein Objekt NamespaceManager verwenden

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
        public static T Deserialize<T>(string text)
        {
            using (StringReader reader = new StringReader(text))
            {
                using (XmlReader xml = XmlReader.Create(reader))
                {
                    return Deserialize<T>(xml);
                }                
            }
        }

        public static T Deserialize<T>(XmlReader reader)
        {
            XmlSerializer xml = new XmlSerializer(typeof(T));
            XmlNamespaceManager ns = new XmlNamespaceManager(reader.NameTable);
            ns.RemoveNamespace("xmlsn""http://microsoft.com/schemas/VisualStudio/TeamTest/2006");
            return (T)xml.Deserialize(reader);
//Passiert garnichts
        }


Was mach ich falsch, ich denke, dass ich das XmlDokument nicht verändere, sondern nur temporär was lösche. Ich weiß es leider nicht so richtig, bitte um Hilfe.

Wenn ich mit dem NameSpace die Xml-Datei deserialisiren will, knallts und es gibt ne InvalidOperationException mit der Fehlermeldung:"Fehler im Dokument (1,40)"

Vielen Dank im Vorraus,

Mfg bfmeb