2017-12-29 4 views
0

나는 아래의 형식으로 내가 다른 XML 파일에 <Information> ...</Information>의 데이터를 분리 할어떻게하면 txt 파일에서 XML 파일을 추출 할 수 있습니까?

<Information> 
    <ID>1</ID> 
    <Name>Sam</Name> 
    <State>Seattle</State> 
    <Country>US</Country> 
</Information> 

<Information> 
    <ID>2</ID> 
    <Name>srikhar</Name> 
    <State>Las Vegas</State> 
    <Country>US</Country> 
</Information> 

<Information> 
    <ID>3</ID> 
    <Name>sima</Name> 
    <State>Ilinois</State> 
    <Country>US</Country> 
</Information> 

에서 txt 파일이 있습니다. 위의 시나리오를 기반으로 3 XML 파일을 얻을 필요가있다.

어떻게 해결할 수 있습니까?

고마워요.

+0

VBScript, Powershell과 같은 텍스트 파일을 사용할 수있는 모든 스크립팅 언어. 창문에 있나요? –

+0

그래, 창문이 – Seeker

답변

-1

마지막으로 사용해 보았지만 그렇게 접근하기에는 너무 위험합니다. 당신이 얻는 결과는 대단히 "NOT PRECISE"입니다. 내용을 보았을 때 올바른 XML 구조로 보이므로 제 권고는 tinyxml을 사용하여 추출하는 것입니다. 확장명을 .xml로 변경하려면 파일의 이름을 바꿔야 할 수도 있습니다.

+0

.txt 파일 확장자를 .xml로 변경하고 tinyxml을 사용하여 내부 XML 파일을 추출하라는 말을하는 것입니까? – Seeker

+0

지금 xml 파일을 사용하고 있으며 tinyxml2를 사용하여 .txt 파일을 읽는 것이 시도되었습니다. 지금까지 출력물은 .xml 확장자를 가진 파일과 동일합니다. XML 구조의 정확성은 확장보다 훨씬 중요합니다. 결국 .xml은 텍스트 파일이기도합니다. – jude

-1

xml 형식이 올바르지 않아 조각과 같은 설정으로 XmlReader를 사용해야합니다. 아래 코드를 참조하십시오.

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Xml; 
using System.Xml.Linq; 

namespace ConsoleApplication1 
{ 
    class Program 
    { 
     const string FILENAME = @"c:\temp\test.xml"; 
     static void Main(string[] args) 
     { 
      XmlReaderSettings settings = new XmlReaderSettings(); 
      settings.ConformanceLevel = ConformanceLevel.Fragment; 

      XmlReader reader = XmlReader.Create(FILENAME, settings); 

      while (!reader.EOF) 
      { 
       if (reader.Name != "Information") 
       { 
        reader.ReadToFollowing("Information"); 
       } 
       if (!reader.EOF) 
       { 
        XElement information = (XElement)XElement.ReadFrom(reader); 
        string id = (string)information.Element("ID"); 
        string filename = string.Format(@"c:\temp\informaton{0}.xml", id); 
        information.Save(filename); 
       } 
      } 
     } 
    } 
} 
+0

그래서 C#에서 XMLReader 클래스를 사용하여 .txt 파일에서 xml을 추출 할 수 있습니까? 위의 코드를 사용하려면 XML 뷰어 등의 도구를 설치해야합니다. – Seeker

+0

올바른. Net Library XML과 Linq XML을 사용합니다. 입력/출력 파일은 확장자를 가질 수 있습니다. xml을 사용했지만 .txt를 사용할 수 있습니다. – jdweng

관련 문제