2009-07-22 5 views
1

Angenommen, ich habe eine Reihe von Elementen wie zu speichern:Wie kann ich mehrere Elemente in einer XML-Datei zum einfachen Parsen speichern?

fruitList = "apple", "orange", "banana", "kiwi", ... 

Wie würden Sie diese XML in speichern?

<FruitList>"apple", "orange", "banana", "kiwi"</FruitList> 

ODER

<Fruits Type="Expensive" List="apple", "orange", "banana", "kiwi"> </Fruits> 

Gibt es einen besseren Weg?

Egal welche Methode gewählt wird, wie kann ich die Liste leicht analysieren, so dass das Parsing müssen nicht auf, wenn die Formatierung der Elemente ändern, wie etwas geändert wird:

<FruitList> 
    "apple", 
    "orange", 
    "banana", 
    "kiwi" 
</FruitList> 

Antwort

15
<Fruits> 
<Fruit>Apple</Fruit> 
<Fruit>Orange</Fruit> 
</Fruits> 
+0

Danke, gute Idee. –

+0

Ich würde immer noch empfehlen, den Serializer zu verwenden. Konstruieren Sie ein Objekt, das Ihre Metadaten enthält, und initialisieren Sie es anschließend mit XML. –

+0

Danke Brian, aber was ich mache ist anders. Ich speichere nur einige externe Programmeinstellungen, um sie in die App zu laden. Die Beispiele sind möglicherweise nicht klar, aber es ist der Benutzer, der der XML-Datei weitere Inhalte hinzufügen kann. –

1

Sie haben ausgecheckt die XmlSerializer-Klasse? Das kann nützlich sein, und es kann sicherlich analysieren Parsing-Listen, die es generiert. (Nicht sicher, ob es genau das, was Sie wollen, though.)

+0

Danke. Ja, das ist nur zum Speichern der Einstellungen für die App. –

0

In Ihrem Fall könnten Sie haben nur

List<string> Fruits; 

in Ihrer Klasse irgendwo was zu

<Fruits> 
    <string>Apple</string> 
    <string>Orange</string> 
</Fruits> 

Ich glaube, serialisiert würde.

Für etwas mehr mit verschachtelten Listen von Objekten, können Sie wie so eine Klasse Früchte als Liste erklären:

[Serializable] 
public class Fruits: List<Fruit> 
{ 
    // empty public constructor to make it serializable 
    public Fruits() 
    { 
    } 

    // ... 
} 

Es gibt Fälle, in denen Sie nicht in der Lage wären, zu setzen, zum Beispiel Liste <Flavors> direkt in die Fruit-Klasse und haben es eine Liste von Listen zu serialisieren (oder war es ein Array von Listen oder eine Liste von Arrays? Ich vergesse --- Ich weiß, ich hatte ein Problem damit); Sie würden eine andere Klasse Flavours benötigen: Liste <Flavors> und so weiter.

0

Der einzige Grund für die Verwendung von XML an erster Stelle ist, dass Sie einen XML-Parser verwenden können, um seinen Inhalt zu analysieren. Dies wird erstaunlich deutlich, wenn Sie mit den Werkzeugen arbeiten, die XML wirklich nützlich machen, wie Schemata und Transformationen (oder XML-Serialisierung): Alle Datenstrukturen, die Sie in Textinhalt einbetten, stehen diesen Tools nicht zur Verfügung.

Verwandte Themen