Moderiert von
Th69: abgeteilt von Nur bestimmte Elemente aus XML-Datei in DataGridView anzeigen
Guten Morgen und frohe Ostern!
Leider bin ich noch immer nicht weiter gekommen. Aber dafür ist mir ein weiteres Problem begegnet.
Wenn ich eine weitere ChannelNo eingebe und das geänderte Dataset mit
MyDataSet.WriteXml(filePath); wieder als xml speichere, dann wird die hinzugefügte Zeile an der falschen Stelle gespeichert.
Das Ändern einer ChannelNo funktioniert hingegen einwandfrei.
Das hier ist die xml-Datei, nachdem ich ChannelNo 2 in 22 geändert habe und einen Channel 107 hinzugefügt habe.
Der Channel 107 wurde in der vorletzten Zeile nach
</Favoritelist> hinzugefügt, er müßte aber vorher innerhalb einer
<FavoriteGroup> eingetragen werden.
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42:
| <?xml version="1.0" standalone="yes"?> <Servicelist xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <Favoritelist> <FavoriteGroup> <Name>Group1</Name> <ServiceType>TV</ServiceType> <ChannelNo>1</ChannelNo> <ChannelNo>22</ChannelNo> <ChannelNo>3</ChannelNo> </FavoriteGroup> <FavoriteGroup> <Name>Group2</Name> <ServiceType>TV</ServiceType> <ChannelNo>4</ChannelNo> <ChannelNo>5</ChannelNo> <ChannelNo>6</ChannelNo> </FavoriteGroup> <FavoriteGroup> <Name>Group3</Name> <ServiceType>TV</ServiceType> </FavoriteGroup> <FavoriteGroup> <Name>Group4</Name> <ServiceType>Radio</ServiceType> <ChannelNo>101</ChannelNo> <ChannelNo>102</ChannelNo> <ChannelNo>103</ChannelNo> </FavoriteGroup> <FavoriteGroup> <Name>Group5</Name> <ServiceType>Radio</ServiceType> <ChannelNo>104</ChannelNo> <ChannelNo>105</ChannelNo> <ChannelNo>106</ChannelNo> </FavoriteGroup> <FavoriteGroup> <Name>Group6</Name> <ServiceType>Radio</ServiceType> </FavoriteGroup> </Favoritelist> <ChannelNo>107</ChannelNo> </Servicelist> |
Ich hab mir mal mit
C#-Quelltext
1: 2: 3:
| System.IO.StringWriter swXML = new System.IO.StringWriter(); MyDataSet.WriteXmlSchema(swXML); textBox2.Text = swXML.ToString(); |
das Schema ausgeben lassen, welches nun folgt.
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31:
| <?xml version="1.0" encoding="utf-16"?> <xs:schema id="Servicelist" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> <xs:element name="Servicelist" msdata:IsDataSet="true" msdata:Locale="en-US"> <xs:complexType> <xs:choice minOccurs="0" maxOccurs="unbounded"> <xs:element name="Favoritelist"> <xs:complexType> <xs:sequence> <xs:element name="FavoriteGroup" minOccurs="0" maxOccurs="unbounded"> <xs:complexType> <xs:sequence> <xs:element name="Name" type="xs:string" minOccurs="0" /> <xs:element name="ServiceType" type="xs:string" minOccurs="0" /> <xs:element name="ChannelNo" nillable="true" minOccurs="0" maxOccurs="unbounded"> <xs:complexType> <xs:simpleContent msdata:ColumnName="ChannelNo_Text" msdata:Ordinal="0"> <xs:extension base="xs:string"> </xs:extension> </xs:simpleContent> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> </xs:choice> </xs:complexType> </xs:element> </xs:schema><Servicelist xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> |
Gruß Jana