我使用XElement
創建XMLDocument
,它在層次結構WPF樹視圖中使用。如果我創建一個新的元素與:XElement.Element爲新創建的元素返回null
x_element = new XElement("node",
new XElement("tree_id", strData[0]),
new XElement("sys_id", dpl.DepSysId),
new XElement("part_id", strData[8]),
new XElement("make", strData[6]),
new XElement("model", strData[5]),
new XElement("level", strData[2]));
然後我需要添加屬性「節點」,所以我嘗試:
XElement temp_el = x_element.Element("node"); // This is returning null
temp_el.SetAttributeValue("title", strData[7] + " " + strData[6] + " " + strData[5]);
temp_el.SetAttributeValue("canEdit", "False");
temp_el.SetAttributeValue("status", nStatus.ToString());
temp_el.SetAttributeValue("qty", strData[13]);
temp_el.SetAttributeValue("part", strData[8]);
在上面的代碼temp_el是空的,但我可以在看調試器x_element包含以下內容:
<node>
<tree_id>82</tree_id>
<sys_id>82</sys_id>
<part_id>169</part_id>
<make>ST Panel</make>
<model>Logical Pure 16 tube Collector</model>
<level>0</level>
</node>
若要解決此我使用了以下內容:
foreach (XElement temp_el in x_element.DescendantsAndSelf())
{
if (temp_el.Name == "node")
{
temp_el.SetAttributeValue("title", strData[7] + " " + strData[6] + " " + strData[5]);
temp_el.SetAttributeValue("canEdit", "False");
temp_el.SetAttributeValue("status", nStatus.ToString());
temp_el.SetAttributeValue("qty", strData[13]);
temp_el.SetAttributeValue("part", strData[8]);
break;
}
}
雖然上述工作,我只是好奇,爲什麼我得到空返回。我的解決方法是做到這一點的最佳方式嗎?
問候。
的回答解決什麼錯,但最好的方法方面:對於'新XElement'構造還允許您與您已經添加了'新XElement's沿着加上'新XAttribute's 。 – AakashM 2013-05-08 08:02:06