저는 LINQ to XML을 사용하여 간단한 XML 파일 파서를 작성했습니다.Linq to XML 리팩터링을 사용하여 딥 객체 그래프를 만드시겠습니까?
XML의 각 요소에 대해 TreeNode 객체 (즉 간단한 트리 구조)를 갖고 싶습니다. 각 요소를 강하게 입력하고 싶습니다.
System.XML을 사용하여 이전에 사용한 단순한 루핑 방식과 비교할 때보기 흉하고 복잡합니다. 여기서 중복을 제거 할 수있는 방법이 있습니까? 수업 및 소스 XML없이
XElement ops = XElement.Load(@"c:\temp\exp.xml");
Tree<Element> domain = new Tree<Element>();
domain.Root = new TreeNode<Element>();
var cells =
from cell in ops.Elements("cell")
select new
{
TreeNodeObj = new TreeNode<Element>
(new Cell((string)cell.Attribute("name"), (string)cell.Attribute("name"), null)),
XElem = cell
};
foreach (var cell in cells)
{
domain.Root.AddChild(cell.TreeNodeObj);
var agents =
from agent in cell.XElem.Elements("agent")
select new
{
TreeNodeObj = new TreeNode<Element>
(new Agent((string)agent.Attribute("name"), (string)agent.Attribute("name"), null)),
XElem = agent
};
foreach (var agent in agents)
{
cell.TreeNodeObj.AddChild(agent.TreeNodeObj);
var nas =
from na in agent.XElem.Elements("node-agent")
select new
{
TreeNodeObj = new TreeNode<Element>
(new NodeAgent((string)na.Attribute("name"), (string)na.Attribute("name"), null)),
XElem = agent
};
foreach (var na in nas)
{
agent.TreeNodeObj.AddChild(na.TreeNodeObj);
}
}
}
아마도 exp.xml 또는 실제 데이터를 둘러 볼 수있는 샘플 데이터를 제공해야합니다. – Max