我需要读取 XML 文件中的所有元素,该文件的格式更像树状层次结构,然后用它填充一个类,这是一个示例:
<?xml version="1.0"?>
<WBs>
<WP GeneralID ="1">
<P name="General_Header">
<Q name= "Category">
<Tools>
<Tool id ="1">
<TName> QT 1</TName>
<Rev>1</Rev>
</Tool>
<Tool id ="2">
<TName> QT 2</TName>
<Rev>3</Rev>
</Tool>
</Tools>
<Contacts>
<Contact>
<CName>MM</CName>
<CMail>m.m@i.com</CMai>
</Contact>
<Contact>
<CName>AM</CName>
<CMail>a.m@i.com</CMail>
</Contact>
</Contacts>
</Q>
<ss name= "Category">
<Tools>
<Tool id ="1">
<TName> SST 1</TName>
<Rev>3</Rev>
</Tool>
<Tool id ="2">
<TName> SST 2</TName>
<Rev>3</Rev>
</Tool>
</Tools>
<Contacts>
<Contact>
<CName>KE</CName>
<CMail>K.E@i.com</CMai>
</Contact>
<Contact>
<CName>AM</CName>
<CMail>a.m@i.com</CMail>
</Contact>
</Contacts>
</ss>
</P>
</WP>
</WBs>
我为每个 WP、工具、联系人做了一个类。如下:
class WP
{
public string GeneralHeader { get; set; } //level 1 i.e p,
public string Category { get; set; }// level 2
public string SubCategory { get; set; }//level 3
public string SubSubCategory { get; set; } // level 4
public List<Tool> WPTools { get; set; }
public List<Contact> WPContacts { get; set; }
}
我想要做的是遍历所有元素和子元素,然后填充 WP 类,这样每当我遇到两个子元素时,它应该在 WP 的两个不同对象中,但具有相同的父属性。
例如:对于上面的示例,我希望从 WP 类中获取两个对象,其“General_Header”参数与“P”相同,但一个对象的“类别”等于“Q”,另一个对象具有“ SS”,然后继续用相应的工具和联系人填充每个人。这个想法与 XML 文件的其余部分在不同级别具有相同的问题相同,例如:WP Tags 在“SubCategory”中有分支,而在“SubSubCategory”中有其他分支。
我能想到的就是更改 xml 文件,以便每个完整的分支(直到工具和联系人标签)都包含在一组单独的<WP>---</WP>
标签中,但在这种情况下,我会重复常见的父标签,我不这样做' t 认为是使用 xml 的一种有效方式。
有什么建议么?
提前致谢。