XmlDocument werfen "Fehler beim Parsen EntityName"
Habe ich eine Funktion, wo ich bin übergeben Sie eine Zeichenfolge als Parameter aufgerufen filterXML, die mit '&' in einer der Eigenschaften.
Ich weiß, dass XML-Daten nicht erkennen, und es wirft mich ein Fehler. Hier ist mein code:
public XmlDocument TestXMLDoc(string filterXml)
{
XmlDocument doc = new XmlDocument();
XmlNode root = doc.CreateElement("ResponseItems");
//put that root into our document (which is an empty placeholder now)
doc.AppendChild(root);
try
{
XmlDocument docFilter = new XmlDocument();
docFilter.PreserveWhitespace = true;
if (string.IsNullOrEmpty(filterXml) == false)
docFilter.LoadXml(filterXml); //ERROR THROWN HERE!!!
Was sollte ich ändern in meinem code zu Bearbeiten oder zu analysieren filterXml? Meine filterXml sieht wie folgt aus:
<Testing>
<Test>CITY & COUNTY</Test>
</Testing>
Ich bin die änderung meiner string-Wert aus & zu &. Hier ist mein code für das:
string editXml = filterXml;
if (editXml.Contains("&"))
{
editXml.Replace('&', '&');
}
Aber Ihre mir ein err im inneren der if-Anweisung : Zu viele Literale.
- Es erroring, da das kaufmännische und-Zeichen (&)
- Das ist spät im Spiel, aber im Fall, jemand stolpert über Sie - die "Zu viele Literale" Fehler wird verursacht durch die Tatsache, dass Gunda verwendet einfache Anführungszeichen, um seinen "&". Einfache Anführungszeichen zeigen an chars, die darf nur ein einzelnes Zeichen.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die Datei oben ist nicht well-formed XML, da das kaufmännische und-Zeichen wird nicht entgangen.
Können Sie versuchen, mit:
oder:
Über die zweite Frage: es gibt zwei Unterschriften für String.Ersetzen. Eine, die Zeichen, die andere, nimmt die Saiten. Verwendung von einfachen Anführungszeichen versucht zu bauen, Zeichen-Literale - aber "&", C# ist wirklich ein string (fünf Zeichen).
Funktioniert es mit doppelten Anführungszeichen?
Wenn Sie möchten, um ein bisschen mehr konservativ, man könnte auch einen code schreiben, um sicherzustellen, dass die &s, Sie ersetzen nicht ein, gefolgt von einem
(aber das wäre immer noch nicht eine perfekte Filterung)
Angeben, ein kaufmännisches und-Zeichen in XML, die Sie verwenden sollten
&
da das kaufmännische und-Zeichen ('&') hat eine Besondere Bedeutung in XML haben.