У меня есть XML со следующим параметром, и мне нужно преобразовать следующий XML со списком строк в соответствии с уровнем отступа узла XML.
<Assembly>
<SubAssembly1>
<ComponentX>
</ComponentX>
</SubAssembly1>
<SubAssembly2>
<ComponentY>
</ComponentY>
<ComponentZ>
<PIN1>
</PIN1>
<ComponentZ>
</SubAssembly2>
</Assembly>
В основном я ожидаю выхода, как показано ниже
Assembly(Level1)
SubAssembly1(Level2)
ComponentX(Level3)
SubAssembly2(Level2)
ComponentY(Level3)
ComponentZ(Level3)
PIN1(Level4)
Как я могу получить список, как указано выше? Нужно ли писать рекурсивную функцию, так как у меня есть ChildNodes под некоторыми ChildNodes ??
private void GetListFromXML(XmlNode xmlNode)
{
System.Xml.XmlNode newXNode;
XmlNodeList xNodeList;
int iNumber = 0;
firstNodeList.Add(xmlNode.Name);
if (xmlNode.HasChildNodes)
{
xNodeList = xmlNode.ChildNodes;
for (int i = 0; i < xNodeList.Count-1; i++)
{
newXNode = xmlNode.ChildNodes[iNumber];
secondNodeList.Add(newXNode.Name.ToString());
GetListFromXML(newXNode);
}
}
}
Как мне достичь вышеуказанных результатов ??