gpt4 book ai didi

xml - 在内联 VB 代码中嵌入 XML 元素

转载 作者:行者123 更新时间:2023-12-04 07:11:19 25 4
gpt4 key购买 nike

考虑以下 VB9 中的代码:

Dim text = "Line1<br/>Line2"
Dim markup = <span><%= text %></span>.ToString

虽然我希望标记最终成为 <span>Line1<br/>Line2</span> , 它实际上计算为 <span>Line1&lt;br/&gt;Line2</span> .

有没有办法让变量的值不被HTML编码?

P.S.:这是我正在尝试做的事情的一个过于简单化的例子。我知道这可以通过多种方式重写以使其工作,但我的代码的构造方式,取消对变量的编码将是最佳的。如果那不可能,那么我会走另一条路。

更多细节:“文本”来自数据库,用户可以在其中输入自由格式的文本,并带有回车符。输出是 HTML,所以我需要以某种方式从数据库中获取值并将回车符转换为换行符。

最佳答案

此行为是“设计使然”。当在 XML 文字中嵌入字符串表达式时,该值将被转义为合法的字符串值。

要获得您正在寻找的行为,您需要在 XML 文字中嵌入 XElement/XNode。以下面的例子为例。它会正确地保留 <br/>标记为 XElement。

Dim text2 = <a>Line<br/>Line</a>
Dim markup2 = <span><%= text2 %></span>.ToString

实现此目的的一种方法是伪造 XElement。要使文本成为有效字符串,只需用普通标签将其两端包裹起来,<a>例如。现在这是一个可解析的 XML 片段。拥有 XElement 后,很容易获得所需的嵌入式行为

Dim text = "Line1<br/>Line2"
Dim text2 = XElement.Parse("<a>" + text + "</a>")
Dim markup = <span><%= text2.Nodes %></span>.ToString

关于xml - 在内联 VB 代码中嵌入 XML 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/295832/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com