0
我還在XML文件的開頭。我想創建一個XML目錄,我有這樣的功能:導入XML並創建目錄C#
RunCommand是執行comanda_cmd 第一,第二是字符串
private void ProcesNode(XmlNode node, string parentPath, string path, string first, string second, string BuiltUnit, string item)
{
if (!node.HasChildNodes || ((node.ChildNodes.Count == 2) && (node.FirstChild is System.Xml.XmlText)))
{
//MessageBox.Show(parentPath + "/" + node.Name);
}
else
{
foreach (XmlNode child in node.ChildNodes)
{
comanda_cmd = first + "/" + parentPath + second + "/" + parentPath + "/" + node.Name;
string status = RunCommand(comanda_cmd + "/project.pj /n");
//content = "_GEN_PROJECT/" + ProjectName + "/" + BuiltUnit + "/" + item + "/" + parentPath + "/" + node.Name + " already exist";
//MessageBox.Show(content);
//check_status(status, content);
ProcesNode(child, parentPath + "/" + node.Name, path, first, second, BuiltUnit, item);
}
}
}
一個功能,我有這樣的XML:
<unit>
<Unit1>
<src>
<i>
<test1>
<test_in1>
<test_in_out>
<t>
</t>
</test_in_out>
</test_in1>
</test1>
<test2>
<test_in2>
</test_in2>
</test2>
</i>
</src>
<doc>
<i>
<test1>
<test_in1>
<test_in_out>
<t>
</t>
</test_in_out>
</test_in1>
</test1>
<test2>
<test_in2>
</test_in2>
</test2>
</i>
</doc>
</Unit1>
<Unit2>
<src>
<i>
</i>
</src>
</Unit2>
</unit>
我調用ProcesNode,它創建目錄。例如:unit/Unit1/src/i/test1/test_in1/test_in_out 但最後一個目錄(在我的情況下是「t」)沒有創建。
我在哪裏錯了?爲什麼它不創建最後一個目錄?
對於最低標籤(''), 'if'條件'(!node.HasChildren || ...)'是'true',所以你不要進入創建目錄的'else'塊。 –
你是對的! 非常感謝Rene Vogt –