换句话说,是否有更快,更简洁的方式编写以下代码:
//Create an object for performing XSTL transformations
XslCompiledTransform xslt = new XslCompiledTransform();
xslt.Load(HttpContext.Current.Server.MapPath("/xslt/" + xsltfile.Value), new XsltSettings(true, false), new XmlUrlResolver());
//Create a XmlReader object to read the XML we want to format
//XmlReader needs an input stream (StringReader)
StringReader sr = new StringReader(node.OuterXml);
XmlReader xr = XmlReader.Create(sr);
//Create a StringWriter object to capture the output from the XslCompiledTransform object
StringWriter sw = new StringWriter();
//Perform the transformation
xslt.Transform(xr, null, sw);
//Retrieve the transformed XML from the StringWriter object
string …Run Code Online (Sandbox Code Playgroud) 我正在开发一个ASP.NET Web应用程序,我一直在遇到同样的问题:
有时我想从代码隐藏中将HTML写入页面.例如,我有一个页面,Editor.aspx,输出根据GET变量的值"视图"而变化.换句话说,"Editor.aspx?view = apples"输出的HTML不同于"Editor.aspx?view = oranges".
我目前用StringBuilder输出这个HTML.例如,如果我想创建一个列表,我可能会使用以下语法:
myStringBuilder.AppendLine("<ul id=\"editor-menu\">");
myStringBuilder.AppendLine("<li>List Item 1</li>");
myStringBuilder.AppendLine("</ul>");
Run Code Online (Sandbox Code Playgroud)
问题是我宁愿使用ASP.NET的List控件来实现这个目的,因为几行StringBuilder语法妨碍了我的代码的可读性.但是,ASP.NET控件倾向于输出复杂的HTML,具有唯一的ID,内联样式以及偶尔的内联JavaScript块.
我的问题是,是否有一个ASP.NET控件只代表一个通用的HTML标签?换句话说,是否存在类似以下示例的控件:
HTMLTagControl list = new HTMLTagControl("ul");
list.ID = "editor-menu";
HTMLTagControl listItem = new HTMLTagControl("li");
listItem.Text = "List Item 1";
list.AppendChild(listItem);
Run Code Online (Sandbox Code Playgroud)
我知道有包装器等等,但我宁愿从简化开始,而不是驯服ASP.NET的复杂性.