XML文件:
<?xml version="1.0" encoding="utf-8"?>
<grid table="Declaration">
<primary_key>Some String</primary_key>
<query>
Some String
</query>
<grid table="GoodsItem">
<foreign_key>Some String</foreign_key>
<primary_key>Some String</primary_key>
<query>
Some String
</query>
<grid table="GoodsItemGUID">
<foreign_key>Some String</foreign_key>
<foreign_key>Some String</foreign_key>
<primary_key>Some String</primary_key>
<query>
Some String
</query>
</grid>
</grid>
</grid>
正如你所看到的那样&#34; grid&#34;元素包含相同的&#34;网格&#34;元素,也可以包含&#34; grid&#34;元素,所以我想通常不仅为这个xml文件解析这个xml文件。什么是最好的方法呢?
我试过这段代码,但它只需要网格元素,例如它并不知道&#34; GoodsItem&#34;是&#34;宣言&#34;的孩子。这就是我想解决的主要问题。
MyClass curr = new MyClass ();
XmlNodeList gridNodes = xmlDocument.GetElementsByTagName("grid");
foreach (XmlNode bookNode in gridNodes)
{
MyClass child = new MyClass ();
curr.Child = child;
curr = child;
curr.Table = bookNode.Attributes["table"].Value;
curr.PrimaryKey = bookNode["primary_key"].InnerText;
curr.Query = bookNode["query"].InnerText;
}
答案 0 :(得分:0)
您可以使用bookNode.ParentNode
访问父节点
您可以通过检查父节点的属性Name
是否为<grid>
来检查父节点是否为grid
。
if (bookNode.ParentNode != null && bookNode.ParentNode.Name == "grid")
{
XmlNode parent_grid = bookNode.ParentNode;
// do something with parent_grid
}