【问题标题】:Xml Literals in VB.Net prevent escapingVB.Net 中的 Xml 文字防止转义
【发布时间】:2014-10-30 15:31:06
【问题描述】:

我正在尝试使用 VB.Net 的 Xml Literals 作为生成 HTML 的模板系统。我想知道是否有任何方法可以控制转义。例如,如果我有类似于以下的代码

Dim param1Value as String = "test"
Dim html = <div>
               <a id="myLink" href="<%= "/mysite/myfile?param1=" + param1Value + "&param2=test2" %>"
           </div>

这将生成一个带有与符号 xml 编码的链接 (&amp;amp;)。目前,我只是在将 xmlElement 转换为字符串时不转义这些。我假设这是我唯一的选择,因为其他任何东西都会产生无效的 XML,但我想知道是否有任何方法可以指定 XML Literal 是原始值并且不需要 Xml Escaped。

【问题讨论】:

    标签: .net xml vb.net escaping xml-literals


    【解决方案1】:

    几年前,我创建了一个ASP.NET MVC View Engine using VB.NET XML Literals,我必须在其中解决这个确切的问题。没有办法告诉vb.net 的Xml 文字部分忽略&amp; 字符。我的特定场景是尝试在 Xml 文字中包含 HTML 实体(如 &amp;copy;)。

    我最终得到的是在我需要在 XML 文字中使用 &amp; 字符的所有地方使用 &lt;amp /&gt;,然后在呈现 HTML 时只使用 .Replace("&lt;amp /&gt;", "&amp;")。请参阅VbView.vb 中的Render 方法。

    【讨论】:

    • 这类似于我想出的解决方案。我想也许还有其他方法可以做到这一点,但不幸的是似乎没有。
    • 我希望通过新的开源编译器,可能有一种方法可以创建真正的解决方案,但我怀疑我是否有时间研究类似的东西。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多