2011-03-31 35 views
1

我的程序通過stringbuilder生成HTML。HTML生成的替代方法

  sbHTMLHeader.Append("<div id=\"printableContent\">"); 
     sbHTMLHeader.Append("<div id=\"packingSlipHeader\">"); 
     sbHTMLHeader.Append("<div class=\"floatLeft\"><img src=\"../images/logo.gif\" alt=\"Logo\" /></div>"); 
//... 
if (!orderType.Equals("L")) 
      { 
       sbHTMLHeader.Append("  <td>" + orderData.Tables[0].Rows[0]["carrier"] + "</td>" + Environment.NewLine); 
       //... 
      } 
      else 
      { 
       sbHTMLHeader.Append("  <td></td>" + Environment.NewLine); 
       //... 
      } 
//... 

380行後,我很激動地反對這個代碼。在過去,我使用Altova Stylevision.在我目前的工作中,我們沒有該產品的許可證。我不需要它提供的任何PDF或其他模板,只需要HTML。你能建議一個強大的,可讀的替代方法來生成如上所述的HTML嗎?

+0

您可以在XSLT中使用羣體模式,如http://stackoverflow.com/q/3529852/357812 – 2011-03-31 15:55:35

回答

2

另一種方法是將所有數據存儲在一個XML文件中並編寫一個將其轉換爲HTML的XSLT(轉換表)。

+0

加上:Visual Studio對xslt的支持非常好。 – xtofl 2011-03-31 14:13:50

1

您肯定可以使用NVelocity來幫助生成這種模板化的HTML。 basic syntax很簡單,你可以去相當複雜。應該爲您節省很多繁瑣的編碼,並且不需要事先處理輸入數據。