2010-10-14 29 views
1

我正在使用xsl將xml中的數據轉換爲C++代碼。當我在需要轉換爲C++代碼的xml文件中有< =或> =時,我遇到了問題。xml to C++:處理轉義字符<=

例如,如果我有(在.xml文件)


<Check>max(x,y) <= 20 </Check> 

和的.xsl文件是

 

if(<xsl:value-of select="Check"/>") { 
... 
} 
 

但這並不編譯上看到< = XML錯誤的。

我試過& lt; =在xml文件中,但我沒有得到< =在C++文件中,但是我得到了& lt; =。爲了用戶友好,我需要在xml文件中有< =而不是& lt; =。

如何修復if()條件內的代碼,以便我可以處理xml中的所有轉義字符並將它們正確地輸出到C++文件中?

感謝 阿南德

回答

3

您是否在stylehsheet中設置了xsl:output元素?默認情況下,XSLT認爲它的輸出是XML,並且會轉義字符。試試這個:

<xsl:output method="text" /> 
+0

它的工作原理。非常感謝 – Anand 2010-10-15 01:09:21

1

你不能在XML文件中<標誌 - 如果你這樣做不是一個XML文件,並且不會被其他編輯器等,所以我認爲你需要去解析與& lt; =策略並在讀取它之後解析字段,以便用C代碼中的所需字符替換&序列。