Frage

Ich habe eine Anwendung, die eine Reihe von XML erzeugt einige Daten aus einer Quelle basierte weg, dass ich nicht kontrollieren. Im Grunde bin ich drehen, dass die Daten in ein XML-Dokument für über RSS-Feeds dienen. Ich mag wie Abrufen von Daten wird

2_br=1
3_br=0

und ich drehe es in den folgenden xml

<2_br>1</2_br>
<3_br>0</3_br>

Offensichtlich ein XML-Tag kann nicht mit einer Ziffer beginnen. Ich konnte nicht überall eine Liste der gültigen Zeichen finden. Ist es existiert irgendwo? Ich werde im Grunde nur zu Präfix und ungültigen Startzeichen oder ein Inline-ungültiges Zeichen mit einem _ ersetzen.

Es ist nicht schwer zu tun, aber im Grunde kann ich nicht nur eine Liste von ungültigen Zeichen für einen XML-Tag-Namen finden.

War es hilfreich?

Lösung

Wie wäre es damit: Extensible Markup Language (XML) 1.0 (Fünfte Ausgabe)

NameStartChar :: = ":" | [A-Z] | "_" | [A-z] | [# XC0- # XD6] | [# XD8- # XF6] | [# XF8- # x2FF] | [# X370- # x37D] | [# X37F- # x1FFF] | [# X200C- # x200D] | [# X2070- # x218F] | [# X2C00- # x2FEF] | [# X3001- # xD7FF] | [# XF900- # xFDCF] | [# XFDF0- # xFFFD] | [# X10000- # xEFFFF]

Andere Tipps

XmlConvert.IsNCNameChar() 

und

XmlConvert.IsStartNCNameChar()

kann verwendet werden, um einen XML-Tag-Namen zu überprüfen:

char[] validTagNameChars = pDesiredTagName.Where(ch => XmlConvert.IsNCNameChar(ch)).ToArray();
string validTagName = new string (validTagNameChars);
if (validTagName == "" || !XmlConvert.IsStartNCNameChar(validTagName[0]))
  validTagName = "_" + validTagName;
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top