2011-12-13 78 views
0

生成由XSLT攝入並吐出到HTML網頁的XML的腳本的一部分。XML/XSLT中的HTML標記

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

偉大的作品,但現在我希望把一些HTML標記在那裏...而不是:

$text = "Line of text." ; 

我需要:

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

試圖改變

< 

&lt; 

> 

&gt; 

字符串中,但沒有工作......

(UPDATE:迴應評論在這裏......當我說它「沒有工作」,具體地說,試圖通過HTML標記是不成功的,因爲標記被顯示而不是被處理。換句話說,標籤沒有被應用,他們只是作爲文本的一部分出現。 AC)

謝謝大家。我正在學習......

+1

「It does not work」is a [very bad description](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標記,並且它們都將相應地進行處理,而不僅僅是顯示...但正如你所說,看起來你是對的 - 這個模塊並沒有試圖保持xml的正確形成。 –