我正在製作一個小程序,該程序可以獲取只能包含值的所有XML元素。例如(請參閱下圖),<Products>
雖然它是一個元素,但它不應該顯示,因爲它只包含所有其他可以包含值的元素,對於<Description>
(突出顯示的那個,對不起我的英語,但希望你能給我傢伙..)如何獲取只能包含值的XML元素?
從下面的圖片,我的程序應該只挑選了以下內容:
<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);
}
}
Batuu嗨,你的代碼對我的作品,但有一些調整。我使用'inXmlNode.ParentNode.Name'來代替。請改變你的答案,然後我會接受它。謝謝。 – yonan2236
嗨yonan2236,編輯。另外,也許最好的做法是在你的方法中返回一個列表,以保持它只負責獲取名稱。在GetElements-Method之外填寫您的列表框。 –
Batuu