2016-06-30 12 views
1

Ich benutze C#.
Ich habe die follwoing XML-Datei:Xml illegale Zeichen Filter

<MyXml> 
    <Element>&lt;x&gt; y&lt;/p&gt<Element> 
    <Element>&amp;quot;my qoute&amp;quot;<Element> 
</MyXml> 

Wie kann ich "Filter" alle ungültigen Zeichen? (<,>,“etc ..)
Ich brauche meinen eigenen Code zu schreiben, wie wie folgt:?!

myElement.InnerText.Replace("&lt","<"); 

oder ich habe einen anderen Weg, das zu tun

Dank

+0

Warum denken Sie, diese sind ungültige Zeichen anstelle von * der gültigen XML-Darstellung * der Sonderzeichen? Was versuchst du zu machen? Wie haben diese Charaktere dort geendet? Haben Sie HTML-Codierung für ein XML- oder HTML-Snippet verwendet? Wie wurde diese Datei erstellt? Sie sollten den Code reparieren, der die Datei erzeugt, wenn das nicht das ist, was Sie erwarteten. –

+0

Ich habe eine andere Anwendung, die mir die .xml-Dateien erstellt .. ich möchte stattdessen die XML-Datei ersetzen & lt CSharpBeginner

+0

Offensichtlich, sonst würden Sie nicht in der Lage sein zu schreiben ''. Wenn 'Element' Kinder gemäß seinem Schema enthalten darf, hat die generierende Anwendung einen Fehler –

Antwort

1

Was Sie s beantwortet hould tun ist zu beheben, was erzeugt dieses XML, wie es falsch eingefügt 'maskiert' XML als Text in Ihre Element Elemente anstelle der untergeordneten Knoten hinzufügen.

Wenn Sie das nicht tun, dann eine mögliche Abhilfe ist, die Elemente zu identifizieren, die angeblich XML enthalten, analysiert den Inhalt und fügen Sie die resultierenden Elemente als Kinder:

var doc = XDocument.Parse(xml); 

foreach (var element in doc.Descendants("Element")) 
{ 
    var content = XElement.Parse("<root>" + element.Value + "</root>"); 
    element.ReplaceNodes(content.Nodes()); 
}