XML::Twig을 사용하여 처음부터 새로운 XML 문서를 생성합니다. 루트 요소에는 접두사와 네임 스페이스 선언이 있어야합니다. 모든 자식도이 네임 스페이스에 속해야하며이 접두어를 사용해야합니다.XML :: Twig를 사용하여 XML을 생성하는 방법 이름 공간 선언과 접두사가 붙은 이름을 포함하고 있습니까?
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<abc:root xmlns:abc="http://www.somehost.com/abc-data/ns/5.0.0" version="5.0.0.0">
<abc:element name="myElement">
This is my element
</abc:element>
</abc:root>
나는 그것이 다소 같을 것이다 가정 :
my $new_twig = XML::Twig->new(map_xmlns => {'http://www.somehost.com/abc-data/ns/5.0.0' => "abc"}, pretty_print => 'indented');
my $root = XML::Twig::Elt->new('root');
$new_twig->set_encoding('UTF-8');
$new_twig->set_standalone("no");
$new_twig->set_root($root);
my $element = XML::Twig::Elt->new('element' => {'name'=>'myElement};
$element->set_text('This is my element');
$element->paste(last_child=>$root);
# print in a file
open (TMP, "> $new_file_name");
select TMP;
$new_twig->print(\*TMP);
close TMP;
이 간단하게 보일지도 모르지만, 난 여전히 Perl과에 뉴비 해요
출력은 다음과 같이해야한다 이것은 나에게 힘든 시간을주고있다! 도움 주셔서 감사합니다.
답장을 보내 주셔서 감사합니다. 이것은 좋아 보인다. 불행히도 그것은 실행되지 않지만 대신 'XML :: Twig :: Elt "패키지를 통해 객체 메서드"print_to_file "을 twig_test.ipl 줄 16에 배치 할 수 없습니다. – Hoodlet
@Hoodlet -'print_to_file' 메소드가 추가되었습니다. 버전 3.36 내에서 - [변경 파일] (http://cpansearch.perl.org/src/MIROD/XML-Twig-3.39/Changes) – bvr
참조 @Hoodlet : 다른 해결책을 제공하기 위해 답을 추가했습니다. 'XML :: Twig'의 이전 버전을 사용할 수 있습니다. – Borodin