2009-06-01 34 views
8

我在想:是否有一種方法可以在C#中編程創建HTML文件,就像您可以使用XML一樣? Mine是一個控制檯應用程序,所以也許有些選項不可用。基本上,我想做一些比建立一個大字符串更聰明的東西。在C#中編程創建HTML網頁

一個可能的場景:

而是寫的:

 string html="<html><head>Blah</head><body>{0}</html>", myotherstring 

我想工作作爲XML

 XmlTextWriter w = new XmlTextWriter(xml_file_path + xml_file_name, 
             System.Text.Encoding.UTF8); 

    w.WriteProcessingInstruction("xml", "version='1.0' encoding='UTF-8'"); 

    // construct xml 
    XmlElement root = xmlDoc.CreateElement("element"); 

    ... 

    xmlDoc.Save(w); 
    w.Close(); 

道歉的幼稚的問題。

+0

更智能的是什麼意思?你能描述一下這個場景嗎? – shahkalpesh 2009-06-01 22:59:04

+0

謝謝,我有同樣的問題。 – 2009-09-01 20:01:26

回答

6

您可以使用NVelocity。它是Java Velocity模板系統的.Net端口。該API不會與XmlWriter類似。相反,您將使用簡單的腳本語言編寫文本文件,將對象放入「上下文」中,然後合併模板和上下文以生成HTML文件。

  1. NVelocity
  2. Velocity Syntax Guide
+0

唉,鏈接被破壞。 – 2017-03-03 08:05:12

0

幾個月前我做了什麼,我有一個asp.net文件(aspx)作爲模板保存在文本文件中,無論用戶何時需要新的頁面,我都會將該模板複製到用戶指定的文件夾中,將擴展名.txt更改爲.aspx,並根據用戶需求以編程方式添加一些選項。儘管這是一個簡單的頁面。當然,越複雜,代碼就越複雜。

7

不要忘記:你可以很容易地生成XHTML與使用XmlTextWriter的方法純XML。

+0

+1。但對於我目前的問題,我發現NVelocity奇妙地達到了我的目的。 – 2009-06-01 23:35:05

2

您可以使用一些第三方開源庫生成強類型驗證(X)HTML,例如CityLizard Framework或Sharp DOM。

例如

html 
    [head 
     [title["Title of the page"]] 
     [meta_(
      content: "text/html;charset=UTF-8", 
      http_equiv: "Content-Type") 
     ] 
     [link_(href: "css/style.css", rel: "stylesheet", type: "text/css")] 
     [script_(type: "text/javascript", src: "/JavaScript/jquery-1.4.2.min.js")] 
    ] 
    [body 
     [div 
      [h1["Test Form to Test"]] 
      [form_(action: "post", id: "Form1") 
       [div 
        [label["Parameter"]] 
        [input_(type: "text", value: "Enter value")] 
        [input_(type: "submit", value: "Submit!")] 
       ] 
      ] 
      [div 
       [p["Textual description of the footer"]] 
       [a_(href: "http://google.com/") 
        [span["You can find us here"]] 
       ] 
       [div["Another nested container"]] 
      ] 
     ] 
    ]; 
2

我意識到這個問題是舊的,但是ASP.Net MVC 3 Razor視圖引擎的最新發行現在給你使用同樣的Razor視圖引擎來生成HTML選項出於任何目的。

請參閱Hosting Razor outside of ASP.Net瞭解如何做到這一點的指南。

+0

我看了一下zip文件,看起來並沒有太多。它當然不會生成任何HTML。 – CarneyCode 2013-11-09 10:23:59