我正在制作一个小程序,据说可以获取所有只能包含一个值的 XML 元素。例如(请参考下图), <Products>
虽然它是一个元素,但它不应该显示,因为它只是包含了所有其他可以包含值的元素,对于<Description>
(突出显示的那个,对不起我的英语,但希望你找我伙计们..)
从下图中,我的程序应该只选择以下元素:
<Material_Number>
<Description>
(2个元素,但不包括突出显示的一个)
<Language>
<Material_Type>
<Base_Unit>
我实际上得到的什么都没有...
请检查我的代码并建议:
public MainForm()
{
InitializeComponent();
XmlDataDocument xmldoc = new XmlDataDocument();
XmlNode xmlnode;
FileStream fs = new FileStream(@"C:\text.xml", FileMode.Open, FileAccess.Read);
xmldoc.Load(fs);
xmlnode = xmldoc.ChildNodes[1];
GetElements(xmlnode);
}
void GetElements(XmlNode inXmlNode)
{
XmlNode xNode;
XmlNodeList nodeList;
int i = 0;
if (inXmlNode.HasChildNodes)
{
nodeList = inXmlNode.ChildNodes;
for (i = 0; i <= nodeList.Count - 1; i++)
{
xNode = inXmlNode.ChildNodes[i];
string ss = xNode.Name;
GetElements(xNode);
}
}
else
{
listBox1.Items.Add(inXmlNode.Name);
}
}