Xml-ből string lista

Xml-ből string lista
2012-12-04T17:39:02+01:00
2012-12-04T18:52:25+01:00
2022-11-27T14:55:41+01:00
Paleko
Már napok óta próbálgatom a lehetséges megoldásokat, de sehogyan sem jön össze, így most már hozzátok fordulok. Van egy XML fájlom, ami tartalmazza az adatbázis lekérdezés eredményét:
<output> <fields> <field name="id" type="int" /> <field name="class" type="string" /> <field name="parent" type="int" /> </fields> <data> <row> <field name="id" type="int">1</field> <field name="class" type="string">Draw</field> <field name="parent" type="int">0</field> </row> <row> <field name="id" type="int">2</field> <field name="class" type="string">CadEllipse</field> <field name="parent" type="int">1</field> </row> <row> <field name="id" type="int">3</field> <field name="class" type="string">CadRectangle</field> <field name="parent" type="int">1</field> </row> <row> <field name="id" type="int">4</field> <field name="class" type="string">CadRectangle</field> <field name="parent" type="int">1</field> </row> <row> <field name="id" type="int">5</field> <field name="class" type="string">CadEllipse</field> <field name="parent" type="int">1</field> </row> </data> <results> <row type="affected">5</row> <row type="insert_id">0</row> <row type="error">None</row> </results> </output>
Ebből a "data" nodeban lévő értékekre lenne szükségem, úgy, hogy az egy rekordban lévők kerüljenek egy stringbe valamilyen "delimiter"-rel elválasztva. Na ez az, amit nem tudok megoldani. A jelenlegi kódom a következő:
XPathDocument myDoc = new XPathDocument(lcUrl); XPathNavigator myNavi = myDoc.CreateNavigator(); textBox1.Clear(); XmlDocument doc = new XmlDocument(); doc.LoadXml(myNavi.InnerXml); XmlNodeList idNodes = doc.SelectNodes("output/data/row/*"); foreach (XmlNode node in idNodes) textBox1.AppendText(node.InnerText + Environment.NewLine);
Ennek az eredménye:
1 Draw 0 2 CadEllipse 1 3 CadRectangle 1 4 CadRectangle 1 5 CadEllipse 1
Amit én szeretnék, az így nézne ki:
1~Draw~0~ 2~CadEllipse~1~ 3~CadRectangle~1~ 4~CadRectangle~1~ 5~CadEllipse~1~
Előre is köszönöm a segítséget!
Mutasd a teljes hozzászólást!
Ha tudod, hogy fixen 3 mező van az eredményhalmazban, akkor definiálsz egy egész szám változót, annak értékét a foreach ciklus előtt 1-re állítod, a foreach-ben megnézed, hogy a kérdéses változó értéke ==3. Ha nem, akkor az innertext után kiiratod a szeparátort és növeled a változót. Ha igen, akkor newline-t írsz ki és 1-re állítod a változót.
Mutasd a teljes hozzászólást!

Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd