値のみを含むことができるすべての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);
}
}