2012-12-05 51 views
0

我有一個XML,我解析並放置在HTML中,當詢問時動態地。如何在JavaScript中替換HTML編碼的字符?

它有一些換行
我想替換爲
	,因此它具有適當的可讀格式。 由於某種原因
未創建LineFeed。

var lput=$(xml).find('lput_info').attr('output'); 

lput=lput.ReplaceAll("
", "
	"); 

'<table class="jpanelTable" >'+ 
    '<tbody>'+    
    '<tr width="100%">'+ 
     '<th class="thPanel">Output</th>'+ 
     '<td class="tdPanel"><pre class="preWrap">'+lput+'</pre></td>'+ 
    '</tr>'+     
    '</tbody>'+ 
'</table>' 

here使用此功能:

String.prototype.ReplaceAll = function(stringToFind,stringToReplace){ 
    var temp = this; 
    var index = temp.indexOf(stringToFind); 
    while(index != -1){ 
     temp = temp.replace(stringToFind,stringToReplace); 
     index = temp.indexOf(stringToFind); 
    } 
    return temp; 
} 

更新XML輸入字符串的

.preWrap { 
    overflow: auto; 
    font-family: "Consolas",monospace; 
    font-size: 9pt; 
    text-align:left; 
    background-color: #FCF7EC; 
    overflow-x: auto; /* Use horizontal scroller if needed; for Firefox 2, not 
    white-space: pre-wrap; /* css-3 */ 
    white-space: -moz-pre-wrap !important; /* Mozilla, since 1999 */ 
    word-wrap: break-word; /* Internet Explorer 5.5+ */ 
    margin: 0px 0px 0px 0px; 
    padding:5px 5px 3px 5px; 
    white-space : normal; /* crucial for IE 6, maybe 7? */ 
} 

部分:

"bpmz.a&#xa;/usr/lib/libdl.a(shr_64.o)&#xa;/usr/lib/libperfstat.a(shr_64.o)&#xa;/usr/lib/lib.a" 
+0

你沒有用'ReplaceAll()'函數回答你自己的問題嗎?你的代碼似乎在這裏工作:http://jsfiddle.net/DRKSk/所以也許輸入字符串不包含你認爲它的作用。 'console.log(lput)'顯示了什麼?請更清楚問題是什麼。 – nnnnnn

+0

@nnnnnn:不知何故來自XML的輸入不會以正確的lineFeeds顯示。在'console.log'中我看不到它 – abi1964

回答

1

有些人可能會建議一個(jQuery)函數,它會創建一個臨時文件div,將文本放在那裏,然後獲取div的內容來解碼字符串。

雖然它的實現很簡單,但它是相當不安全的,因爲你幾乎要求用戶在字符串中放置各種html標籤。

I'd suggest using these functions
Requires a second function

這些比div替代性更安全。

相關問題