2014-03-06 4 views
1

이것은 LINQ를 사용하여 만든 xml 파일입니다.프로젝트에서 소스 노드를 자식 노드로 추가하려면 어떻게해야합니까?

<?xml version="1.0" encoding="utf-16"?> 
    <projects> 
     <project id="2"> 
     <source id="2"> 
      <category>2</category> 
     </source> 
     <name>2</name> 
     <category>2</category> 
     </project> 
    </projects> 

이 코드는 다음과 같습니다.

Private Sub btnAdd_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAdd.Click 

     Dim doc As XDocument = XDocument.Load("\\Demo.xml") 
     Dim oDept = doc.Descendants().Elements("project").FirstOrDefault() 

     Dim oEmp As New XElement("project") 
     oEmp.Add(New XAttribute("id", 3)) 

     Dim src As New XElement("source") 
     src.Add(New XAttribute("id", 3)) 
     src.Add(New XElement("category", 3)) 

     oEmp.Add(New XElement("name", 3)) 
     oEmp.Add(New XElement("category", 3)) 

     oEmp.Element("source").Add(src) 
     doc.Save("\Demo.xml") 
     MessageBox.Show("Added Succefully!") 
End Sub 

이 코드를 사용하여 oEmp에 src를 추가하고 싶습니다. 예 : oEmp.Element ("원본") 추가 (SRC)

+0

당신이 간단한'oEmp.Add (SRC)를 시도'? – har07

답변

0

단순히 매개 변수로 자식 요소를 통과하는 부모 요소에 .Add()를 호출하는 다른 XElement의 자식으로 XElement을 추가하는 방법..

Dim src As New XElement("source") 
src.Add(New XAttribute("id", 3)) 
src.Add(New XElement("category", 3)) 
oEmp.Add(src) 

또 다른 것은, 당신의 코드가 끝에서 만든 oEmp 요소를 사용하지 않습니다

oEmp.Add(New XElement("name", 3)) 
oEmp.Add(New XElement("category", 3)) 

은 그래서 <source> 요소에 대해 동일해야합니다 : 당신은 이미 <name> 여기 <category> 요소 것을 수행 . 난 당신이 제대로 계신 이해한다면, 당신은 doc을 저장하기 전에 루트 요소 (<projects>)이 방법의 자식으로 추가해야합니다

Dim root = doc.Root; 
root.Add(oEmp); 
관련 문제