Perl을 사용하여 XML 속성을 변경하려고합니다.Perl XML : LibXML setAttribute가 문서를 변경하지 않습니다.
XML 파일은 다음과 같습니다
<Node>
<NodeX attr1="1" attr2="2" attr3="3"/>
</Node>
펄 스크립트가 포함되어 스크립트가 속성을 변경하지 않는 결과
my @nodes = $doc->findnodes("//Node/Nodex");;
if (@nodes) {
my $res = $nodes[0]->hasAttribute("attr3");
if ($res) {
foreach (@nodes) {
$_->setAttribute('attr3', "10");
}
}
}
으로. 이미 사용 권한을 테스트했으며 스크립트는 print
을 사용하여 XML 파일을 읽고 쓸 수 있습니다.
setAttribute
은 hasAttribute
이 true를 반환 함에도 불구하고 전혀 아무 것도하지 않는 것처럼 보입니다.
어떻게 속성이 변경되지 않았 음을 확인합니까? XML을 어디서 출력합니까? 문서의 다른 측면을 바꿀 수 있습니까? – amon
일단 스크립트가 완료되면 XML 파일을 읽습니다. 나머지 문서는 XSLT에서 처리되고 나머지 모든 속성은 XSLT에 지정된 함수에 따라 설정됩니다. 다른 질문? –
파일을 DOM으로 파싱하여 DOM을 변경했지만 변경된 DOM을 파일에 다시 쓰는 것을 잊어 버렸습니까? – tobyink