2015-02-24 44 views
0

我正在閱讀一個XML文件,我想將實際內容寫入HTML。我認爲問題在於HtmlTextWriter將我的XML標籤視爲HTML標籤。我曾嘗試使用HttpUtility.HtmlEncode/Decode和SecurityElement.Escape,但這些都不起作用。如何轉義標籤以便我可以將字符串寫入我的HTML頁面。c#:轉義XML字符串並寫入HTML

private string WriteXmlToHtml() 
    { 
     StringWriter stringWriter = new StringWriter(); 

     using (HtmlTextWriter writer = new HtmlTextWriter(stringWriter)) 
     { 
      int counter = 0; 
      string line; 

      StreamReader file = new StreamReader("test.xml"); 

      while ((line = file.ReadLine()) != null) 
      { 
       //HttpUtility.HtmlDecode(line); 
       //System.Security.SecurityElement.Escape 
       writer.Write(line); 
       counter++; 
      } 
     } 

     return stringWriter.ToString(); 
    } 

回答

1

//編輯:我有shamelessy實現薩那託斯<pre>標籤到輸出字符串。來源在評論

writer.Write(String.Format("<pre>{0}</pre>",HttpUtility.HtmlEncode(line))); 

產生以下輸出:

<?xml version="1.0" encoding="utf-8"?>
<Settings>
 <Code>D:picture\simple</Code>
...

,再加上它的每一行後面增加一個換行符。不幸的是,它並沒有保持縮小。

這應該在您的html文件中呈現爲有效的xml。

+0

感謝。但我想我實際上把它放在一個2列的HTML表格上。第一列將是行​​號,第二列將包含標籤。你有什麼想法如何保存XML的縮進? – jmc 2015-02-24 12:30:37

+0

@wintersolstice你可以使用

標籤,並將其放入xml中。 –
                        
                            
    xanatos
                                2015-02-24 12:35:53
                            
                        
                    

+0

@xanatos虐待它試一試。但你能告訴我嗎? – jmc 2015-02-24 14:02:05

0

嘗試使用這樣的:

private string WriteXmlToHtml() 
{ 
    string filePath = @"d:\abc.xml"; 
    return Server.HtmlEncode(File.ReadAllText(filePath)); 
}