2013-10-04 1 views
1

잘 작동하는 C#의 배열 목록에서 xml 파일을 만들어야합니다. 내가 값이 기록에 # 오는 레코드에 대한 xml 노드를 만들 필요가 없습니다. #가 #라면 이것을 예로 들자면 노드를 만들지 말고 배열리스트의 값이 #가 아닌 다른 문자열이 오면 그 안에 노드를 만들고 값을 저장하십시오.특정 데이터가 포함 된 레코드의 xml 노드를 필터링하십시오.

많은 감사

public void generateXMLFile(List<UWL> myList) 
{   
     XDocument objXDoc = new XDocument(
     new XElement("Institution", 
     new XElement("RECID", myList[0].recid), 
     new XElement("UKPRN", myList[0].UKPRN), 
     myList.Select(m => new XElement("Person", 
      new XElement("STAFFID", m.STAFFID), 
      new XElement("OWNSTAFFID", m.OWNSTAFFID), 
      new XElement("ACTCHQUAL", m.ABLWELSH) 
      )      
     ) 
     ) 
     ); 

     objXDoc.Declaration = new XDeclaration("1.0", "utf-8", "true"); 
     // 
     objXDoc.Save(@"C:\Test\generated.xml"); 

     //Completed.......// 
     MessageBox.Show("Process Completed......"); 
} 
+0

내가 읽고있다 데이터 :

가 이 myList.Select에 변경

배열 목록을 만들고 xml의 노드를 만듭니다. 이제 다음 데이터가 배열 목록에 있으면 # 노드를 만들지 말고 다음으로 만들고 다음으로 건너 뛰십시오. – toxic

+0

실제로 코드의 목록을 반복하고 있습니까 (아직 표시하지 않았습니까?). – doctorlove

+0

@doctorlove'myList.Select (m => 새 XElement'는 XElement의 배열을 거기에 추가합니다.) –

답변

1

, 무엇을 나타내는 지 # 확실하지하지만 그것은 사람의 값 중 하나를 말한다. 내 예제에서 나는 STAFFID을 포착,하지만하여 필터링하려는 다른 사람 또는 UWL 객체의 다른 값 중 하나 일 수있다 : C#을에서

myList 
.Where(m => m != null) 
.Where(m => m.STAFFID != value) 
.Select(m => new XElement("Person", 
      new XElement("STAFFID", m.STAFFID), 
      new XElement("OWNSTAFFID", m.OWNSTAFFID), 
      new XElement("ACTCHQUAL", m.ABLWELSH) 
      )      
     ) 
+0

괜찮 았으면, null 값을위한 노드를 만들지 않거나 xml 문서의 모든 노드를 값이 null – toxic

+0

@toxic'null 값을위한 노드를 만들지 마라 '라고했을 때 null이 무엇인지? 그러면 다른'.Where (m => m! = null)' –

관련 문제