2017-07-19 341 views
0

我想將一個XML類型的值轉換爲字符串類型的值,併爲此,我正在使用toString()方法來實現,但問題是,從XML轉換爲字符串我得到一些「\ n」(Break語句)在那個字符串變量中。如何刪除將XML轉換爲Flex中的字符串類型的中斷?

但我不知道爲什麼要來了,我目前使用的轉換以下代碼:

我的XML是:

var text:XML = new XML(<HTML> 
<BODY> 
<P ALIGN="left"> 
    <FONT> 
    <FONT SIZE="32"> 
     Some Text Here 
    </FONT> 
    </FONT> 
</P> 
</BODY> 
</HTML>); 

下面的代碼我使用XML轉換爲字符串:

var textString:String = (text.normalize()).toString(); 

但是如果我檢查變量textSring然後我得到以下結果:

<HTML>\n <BODY>\n <P ALIGN="left">\n  <FONT>\n  <FONT SIZE="32">Some Text Here</FONT>\n  </FONT>\n </P>\n </BODY>\n</HTML> 

但我不知道爲什麼「\ n」在轉換爲字符串後會出現。

如果有人能找到我在做錯的地方,以便我得到這樣的結果以及如何解決這個問題,請幫我解決。

+0

\ n是一個換行符。你有沒有嘗試過text.toXMLString()?等等,如果你正在做一種類型的對象,就把它當作一個對象,並把它傳遞給String()吧? (使用@的xml屬性) – quantomworks

回答

2

這解決了問題

var textString:String = (text.normalize()).toString().split("\n").join(""); 
2
  • \n意味着新線。按下enter鍵時會發生這種情況(例如:在製作XML文本時)。

  • 您是否直接複製/粘貼來自其他程序的XML文本?我不希望Flash IDE認爲您的enter印刷機必須在文本中變爲\n。作爲顯示指令的一部分,外部程序可能會將這些「新行」指令與複製的文本一起傳遞。


選項#1:嘗試不normalize功能(豈不是更好?)。

var textString:String = text.toString(); 


選項#2:儘量保持相同的多線格式。

var textString:String = (text.normalize()).toString(); 
textString = textString.replace("\\n", "\n"); 


選項#3:只需通過刪除所有\n字符(失去的多線fomatting)清潔字符串。

var textString:String = (text.normalize()).toString(); 
textString = textString.replace("\n", ""); 
trace ("textString is : " + "\n" + textString); 
相關問題