【发布时间】:2012-03-14 14:44:28
【问题描述】:
要求 我想读取一个 XML 树,用遇到的属性填充我的对象,并在每次运行一个方法后(将它插入到我的数据库中)。不指定父母的数量,也没有指定顺序,例如,地址-死亡-死亡-地址-地址
输入文件
概述:
<Root>
<Element>
<Element2>
<Parent>
<Child>
<Grandchild>
<Grandchild>
</Child>
</Parent>
</Element2>
</Element1>
</Root>
完整示例:
<?xml version="1.0" encoding="utf-8" ?>
<Root>
<Element1>
<Element2>
<Parent>
<Child>
<Grandchild>
<number>01</number>
<name>Person</name>
<Rows>
<Row>
<number>0110</number>
<name>ID</name>
<value>123456789</value>
</Row>
</Rows>
</Grandchild>
<Grandchild>
<number>08</number>
<name>Address</name>
<Rows>
<Row>
<number>1110</number>
<name>street</name>
<value>first aveneu</value>
</Row>
<Row>
<number>1120</number>
<name>streetnumber</name>
<value>345</value>
</Row>
<Row>
<number>1130</number>
<name>zip</name>
<value>2938PS</value>
</Row>
<Row>
<number>1160</number>
<name>country</name>
<value>Germany</value>
</Row>
</Rows>
</Grandchild>
</Child>
</Parent>
<Parent>
<Child>
<Grandchild>
<number>01</number>
<name>Person</name>
<Rows>
<Row>
<number>0110</number>
<name>ID</name>
<value>987654321</value>
</Row>
</Rows>
</Grandchild>
<Grandchild>
<number>06</number>
<name>Death</name>
<Rows>
<Row>
<number>0810</number>
<name>date</name>
<value>2012-01-03</value>
</Row>
<Row>
<number>0820</number>
<name>placeOfDeath</name>
<value>attic</value>
</Row>
<Row>
<number>0830</number>
<name>funeral</name>
<value>burrial</value>
</Row>
</Rows>
</Grandchild>
</Child>
</Parent>
</Element2>
</Element1>
</Root>
想要的结果 遇到父母后确定孙子的类型(6 号是死亡,8 号是地址)每个父母都有 1 号孙子“人”,第二个孙子要么是死亡,要么是地址。
读第一父母
Person person = new Person();
person.ID = value; <--- filled with 123456789
person.street = value; <--- filled with first aveneu
person.streetnumber = value; <--- filled with 345
person.zip = value; <--- filled with 2938PS
person.country = value; <--- filled with germany
person.DoMethod(); // inserts the value in db
继续阅读下一位家长。
Person person = new Person();
person.ID = value; <--- filled with 987654321
person.date = value; <--- filled with 2012-01-03
person.placeOfDeath = value; <--- filled with attic
person.funeral = value; <--- filled with burrial
person.DoMethod(); // insert the values in db
继续阅读直到找不到父母
编辑:如何为每个孩子定位第二个孙子的姓名元素?喜欢地址或死亡
代码/信用
在 Daniel Hilgarth 的帮助下,我没有进一步了解:Linq to XML (C#) parse XML tree with no attributes/id to object XML 树已经改变,我真的被困住了.. 同时我尝试发布新的工作代码......
【问题讨论】:
-
person.1110到底是什么?它永远不会编译。 -
你的意思是特定的.1110?它可能意味着街道。 person.street = "first aveneu" 例如。
-
我已将 xml 示例更改为更具可读性。
标签: c# .net linq linq-to-xml linq-to-objects