2012-06-13 2 views
1

XML 파싱의 새로운 기능입니다. 나는 XML 파일이 있고이 XML에서 일부 요소를 추출하고 선택한 요소 및 일부 추가 요소를 사용하여 새 XML 파일을 만들어야합니다.xml을 다른 XML로 변경하는 방법

이 작업을 시작하기 전에 무엇을해야하는지 이해해야합니다.

+0

XSLT 사용을 고려, 그것은 바로이 목적을 위해 만들어진 :

다음은이 주제에 대한 좋은 튜토리얼입니다. –

답변

3

LINQ to XML을 사용하면 매우 쉽게 처리 할 수 ​​있습니다. XSLT는 (다른 제안) 아마도 아주 잘 작동하지만

XDocument oldDoc = XDocument.Load("existing.xml"); 
var elementsToCopy = oldDoc.Descendants("foo"); 

var newDoc = new XDocument(
    new XElement("root", 
     new XElement("imported", elementsToCopy), 
     new XElement("other") 
    ) 
); 
newDoc.Save("new.xml"); 

, 나는 ': 예를 들어,이 같은 시간에 other 요소를 생성, imported 요소 아래에 new.xmlexisting.xml의 모든 foo 요소를 복사합니다 항상 사용하기 까다로운 점을 발견했으며 C# 내에서 쉽게 얻을 수있는 다른 언어를 배워야하지 않는 것을 선호합니다. YMMV.

+0

XDocument (예 : XmlDocument)는 전체 문서를 메모리에로드합니다. 따라서이 권장 사항은 매우 큰 XML 파일에는 적합하지 않을 수 있습니다. – Joe

+0

@Joe : 이것은 사실이지만 대부분의 최신 컴퓨터에서 사용되는 메모리의 크기는 걱정하지 않고 꽤 큰 XML 파일을로드 할 수 있음을 의미합니다. * 누군가 XML 파일이 크지 않다면 문제. –

+0

사실, 특히 64 비트 응용 프로그램에서는 그렇습니다.하지만 XmlDocument/XDocument와 XmlReader 사이의 차이점은 OP가 알아야 할 것입니다. 왜냐하면 그는 "시작하기 전에 무엇을 이해해야합니까?" – Joe

5

시작하기 전에 무엇을해야 할 지, 어떻게해야합니까?

XML 파일을 조작 할 수있는 XDocument 클래스를 살펴볼 수 있습니다. 또 다른 가능성은 약 XSL transformations을 읽는 것입니다.

관련 문제