XML读取节点和子节点
本文关键字:子节点 节点 读取 XML | 更新日期: 2023-09-27 18:03:39
我有这个xml:
<?xml version="1.0" encoding="UTF-8"?>
<Dictionary>
<Object name="Ship">
<Struct_Name>tb_Ship</Struct_Name>
<Owner> ..... </Owner>
<Parameters>
<Parameter>
<Eng_Name>.....</Eng_Name>
<Discr>.....</Discr>
<Type>.....</Type>
</Parameter>
<Parameter>
<Eng_Name>......</Eng_Name>
<Discr>.........</Discr>
<Type>.................</Type>
</Parameter>
</Object>
<Object name="Car">
<Struct_Name>tb_Car</Struct_Name>
<Owner> ..... </Owner>
<Parameters>
<Parameter>
<Eng_Name>.....</Eng_Name>
<Discr>.....</Discr>
<Type>.....</Type>
</Parameter>
<Parameter>
<Eng_Name>......</Eng_Name>
<Discr>.........</Discr>
<Type>.................</Type>
</Parameter>
</Object>
</Dictionary>
我试着像这样读取这个XML:
foreach(var Object in Objects)
print the whole elements values
foreach(var Parameter in Parameters Of Current Object)
print the whole elements of current parameter
我试着用2 foreach,它不工作总是得到异常,对象不设置为对象的实例,就像这样。有一种方法可以像我想要的那样读取xml吗?
您可以使用xpath来获取您想要的内容,例如,您想要获取所有参数:
XmlDocument doc = new XmlDocument();
doc.Load("file.xml");
XmlNodeList parameters = doc.SelectNodes("Dictionary/Object/Parameters/Parameter");
// or doc.SelectNodes("//Parameter");
foreach(XmlNode parameter in parameters)
{
// print the whole element
}
希望对你有帮助。
顺便说一下,在你的xml中,"Parameters"标签是不关闭的。