Я пытаюсь преобразовать данные Xml в объект C #.
Мой класс C # выглядит примерно так:
Public Class XmlModel {
public string NodeName { get; set; }
public int NodeId { get; set; }
public int ParentId { get; set; }
}
Я могу получить все узлы XMLи создайте список объекта.Вот мой код для получения узлов.
public List<XMLModel2> ProcessXml()
{
XMLRepository xr = new XMLRepository(new POCEntities());
XmlDocument doc = new XmlDocument();
var a = xr.GetXmlFileById(1);
doc.LoadXml(a.XmlFile);
XmlNode rootNode = doc.DocumentElement;
GetChildNodeWithId(rootNode);
return NodeList;
}
public void GetChildNodeWithId(XmlNode node)
{
AddNode(node);
XmlNodeList children = node.ChildNodes;
if (children != null)
{
for (int i = 0; i < children.Count; i++)
{
GetChildNodeWithId(children[i]);
}
}
}
public void AddNode(XmlNode node)
{
XMLModel xml = new XMLModel();
xml.NodeName = node.Name;
xml.NodeValue = node.Value;
NodeList.Add(xml);
}
Теперь у меня возникла проблема с вставкой NodeId и ParentId. Предполагается, что мои требуемые данные выглядят так при преобразовании xml в
.
<parent>
<child>
<key> one </key>
<key> two </key>
<key> Three </key>
</child>
<child>
<key> one </key>
<key> two </key>
<key> Three </key>
</child>
</parent>
Список XMLModel должен выглядеть следующим образом:
NodeName: Parent, NodeId: 1, ParentId: 0
NodeName: Child, NodeId = 2, ParentId: 1
NodeName: ключ, NodeId: 3, ParentId: 2
NodeName: Key, NodeId: 4, ParentId: 2
NodeName: ключ, NodeId: 5, ParentId: 2
NodeName: Child, NodeId = 6, ParentId: 1
NodeName: Key, NodeId: 7, ParentId: 6
NodeName: ключ, NodeId: 8, ParentId: 6
NodeName: ключ, NodeId: 9, ParentId: 6