2014-07-17 5 views
1

Perl을 사용하여 XML 파일을 읽은 다음 일부 내용을 변경하고 다른 XML 파일에 다시 작성합니다.perl을 사용하여 XML 읽기 및 쓰기

내 입력 XML은 다음과 같습니다

  <A 
       value1="123"> 
       <B 
        V1="1" 
        V2="7" 
        V3="1"/> 
      </A> 

그러나 내가 갖는 출력은 형태 :

  <A value1="123"> 
       <B V1="1" V2="7" V3="1"/> 
      </A> 

내가 코드를 사용하고 있습니다 :

my $data_xml = $xml->XMLin(get($xml_url),KeepRoot => 1,ForceArray => 1); 
XMLout($data_xml,KeepRoot => 1,OutputFile => "Keep5.xml"); 

을 출력과 같은 형식으로 출력을 얻으려면 어떻게해야합니까?

+0

원본 파일이 수동으로 포맷 되었습니까? – Matteo

+0

@Matteo 원래 파일을 perl을 사용하여 읽었으므로 다른 이름으로 다시 작성해야합니다. – Maximus

+2

왜 원하니? 심각한 질문입니다. XML은 레이아웃을 스펙의 일부로 정의하지 않습니다. 그것이 염려하는 한, 한 줄로 훑어 보는 모든 것은 깔끔하게 배치 된 것과 똑같습니다. 서식 및 레이아웃을 별도로 다루는 '스타일 시트'를 정의합니다. – Sobrique

답변

1

나는 원래 서식을 보존 할 수있는 쉬운 방법이라고 생각하지 않습니다하지만 당신은 xmllint처럼

  • XML::Tidy
  • XML::Twig
  • 또는 같은 외부 도구를 도구를 사용하여 출력 포맷을 시도 할 수 있습니다
+0

이 모듈들을 사용하여 데이터가 어떻게 읽혀지고 수정되는지를 설명 할 수 있습니까? – Maximus