2012-04-02 3 views
1

Angenommen, ich habe folgende xml:DataSet.ReadXML (xmlpath) liest XML-Attribute in neue Tabellen

<books> 
    <book> 
     <name>book 1</name> 
     <author>aut 1</author> 
     <length unit="cm">297</length> 
    </book> 
</books> 

Wenn ich diese XML-Daten in einem Datensatz mit lesen:

dataSet.ReadXml(xmlPath) 

Es wird eine Rückkehr Datensatz mit 2 Tabellen: Bücher und Länge. Die Tabelle 'Bücher' enthält 2 Spalten: 'Name' und 'Autor'. Die andere Tabelle "Länge" enthält alle Längen.

Ich möchte nur 1 Tabelle, 'Bücher' mit allen 3 Spalten. Das Attribut 'Einheit' sollte einfach ignoriert werden ... Wie machst du das?

Edit: sorry, ich löste es, indem Sie einfach den Text in der XML-Datei zu entfernen:

 mainXML = mainXML.Replace(" unit=\"K\"", ""); 
+1

Wow kann nicht daran glauben, vielleicht haben Sie vergessen, einen Teil von XML/Code? – sll

+0

Ist das Dataset mit 2 Tabellen (und einer Relation) vorkonfiguriert? –

+0

Dies ist der Code zum Lesen der Datenmenge: DataSet dsMain = new DataSet(); dsMain.ReadXml (xmlPath); Rückkehr dsMain; –

Antwort

1

Ich habe gerade die XML-Datei gelesen, die Attribute entfernt und erneut gespeichert. Nicht schön, aber es funktioniert ...

mainXML = mainXML.Replace(" unit=\"K\"", ""); 
1

Erstellen eines typisierten DataSet in dem Designer, die die relevanten Tabellen und Felder enthält. Rufen Sie dann ReadXml auf einer Instanz dieser DataSet. Dies sollte funktionieren und auch beim Datenzugriff komfortabler sein.

+0

Das mag funktionieren, aber ich kann das nicht tun, da es eine dynamische Tabelle ist ... Ich kann die verschiedenen Felder der Tabelle nicht spezifizieren. Danke –

Verwandte Themen