2011-12-13 3 views
0

XSLT로 처리되어 HTML 웹 페이지에 침투 한 XML을 생성하는 스크립트의 일부입니다. 내가 필요로하는XML/XSLT의 HTML 마크 업

$text = "Line of text." ; 

: 대신에 ...

use XML::Writer ; 
$writer->emptyTag('Row' , 'text' => $text ) ;  

잘 작동하지만, 지금은 거기에 약간의 HTML 태그를 넣을

$text = qq |<span class="blah">Line of text.</span>| ; 

변화 시도

< 

~

&lt; 

> 

&gt; 
문자열의

하지만 작동하지 않았다에 ...

(UPDATE : 여기에 코멘트에 응답 ... 언제 마크 업이 처리되는 대신 표시 되었기 때문에 HTML 마크 업을 통과하려는 시도가 실패했습니다. 즉, 태그는 적용되지 않았으며 텍스트의 일부로 나타났습니다. AC)

감사합니다. 저는 ...

+1

"작동하지 않았습니다"는 문제의 [매우 나쁜 설명] (http://meta.stackexchange.com/questions/114574/encourage-problem-descriptions)입니다. – TLP

+0

해결책을 찾았습니다. 내가 변경 : ... 내 XSLT 파일에 : 완벽하게 작동합니다. 모두에게 감사드립니다. AC –

답변

3

emptyTag 호출은 예상대로 작동하지만 XML :: Writer는 당신을 위해 영리하게 시도하지 않을 것입니다. 형성된 XML. https://metacpan.org/pod/XML::Writer의 문서에서

emptyTag ($ 이름 [$ aname1 => $ 값 1, ...])

Add an empty tag to an XML document. Any arguments after the element 

이름의 이름/값 쌍으로 가정 (자세한 내용은) STARTTAG를 (참조) 속성 :

을 따라서 결과로 XML <span class="blah">Line of text.</span>를 얻기 위해, 당신은 이런 식으로 뭔가를 할 것이다 :

use XML::Writer; 

my $writer = new XML::Writer; 

$writer->startTag('span',class=>'blah'); 
$writer->characters('Line of text.'); 
$writer->endTag(); 
+0

감사합니다. mrk. 나는 그걸 가지고 노는 것을 시도 할 것이다. XML에있는 단일 문자열을 통과 할 수 있기를 바라고 있었는데 거기에 HTML 태그를 몇 개나 넣을 수 있으며 표시되는 대신 모든 HTML 태그를 처리 할 수있었습니다.하지만 당신이 말했듯이, 당신이 돈에 옳은 것처럼 보입니다 - 모듈은 XML을 적절하게 유지하려고하지 않습니다. –