yellowspam
Erfahrenes Mitglied
Hi@all: ich habe eine Funktion welche den Text in einem XMl-File auf die CData-tags durchsucht.
Je nachdem ob Daten aus dem XML-file geladen oder geschrieben werden, soll die Funktion die CData-Tags hinzufügen oder entfernen.
Nun habe ich eine ArrayList gemacht und soll nun mit ner For-Schleife alles so oft durchgehen wie...? und da liegt der Punkt ich weiß nicht wirklich was genau dann die Funktion tun soll, der Teil mit dem raussuchen der Tags und entfernen bzw. hinzufügen existiert schon,wenn auch mit fehlern.
Hier mal der Source:
Vllt. könnt ihr mir ein paar Lösungsansätze geben, habe schon herumprobiert aber nur fehler erzeugt
Je nachdem ob Daten aus dem XML-file geladen oder geschrieben werden, soll die Funktion die CData-Tags hinzufügen oder entfernen.
Nun habe ich eine ArrayList gemacht und soll nun mit ner For-Schleife alles so oft durchgehen wie...? und da liegt der Punkt ich weiß nicht wirklich was genau dann die Funktion tun soll, der Teil mit dem raussuchen der Tags und entfernen bzw. hinzufügen existiert schon,wenn auch mit fehlern.
Hier mal der Source:
C#:
//fügt CData-tags hinzu und/oder entfernt diese
public static string PrepareCDATA(string description, bool loading)
{
System.Collections.ArrayList StartPattern = new System.Collections.ArrayList(2);
System.Collections.ArrayList EndPattern = new System.Collections.ArrayList(2);
StartPattern.Add("<![CDATA[");
StartPattern.Add("<![CDATA[");
EndPattern.Add("]]>");
EndPattern.Add("]]>");
for (int i = 0; i < StartPattern.Count; i++)
{
if (loading)
{
//find and delete cdata tags from the text
int startIndexCData = description.IndexOf((StartPattern.ToString()));
int endIndexCData = description.IndexOf((EndPattern.ToString()));
// wenn der index >= 0 ist, dann gibt es ein cdata tag im text...
// ... wenn NICHT, haben wir NICHTS zu tun!!
if (startIndexCData >= 0)
{
if (startIndexCData <= (StartPattern.ToString()).Length && endIndexCData > startIndexCData + 1)
{
description = description.Substring(((StartPattern.ToString()).Length + 1), (description.Length - ((StartPattern.ToString()).Length + 1)));
description = description.Substring(0, ((description.ToString()).Length - (EndPattern.ToString()).Length));
}
}
}
else
{
// append text with the cdata tag
description = "<![CDATA[" + description + "]]>";
// es soll nicht der fall sein, dass das cdata tag 2x vorkommt...
// ... <