需要帮助我在VB代码中读取特殊字符。 ASCII码Char(34)= <!> quot;工作正常,但Char(60)= <!> lt;和Char(62)= <!> gt;没有被阅读。

我的代码

node.FirstChild.InnerText = Chr(60) & "httpRuntime executionTimeout=" & Chr(34) & "999999" & Chr(34) & " maxRequestLength=" & Chr(34) & "2097151" & Chr(34) & "/" & Chr(62)

没有ASCII码

'node.FirstChild.InnerText = "<httpRuntime executionTimeout="999999" maxRequestLength="2097151"/>"
有帮助吗?

解决方案

您是否尝试修改配置文件?尝试: -

node.FirstChild.InnerXml =  "<httpRuntime executionTimeout=""999999"" maxRequestLength=""2097151"" />"

注意所有Chr marlarky是不必要的,你试图避免<>被编码为XML实体吗?

其他提示

也许这不能解答您的问题,但您可以使用两个双引号来转义VB.NET中的引号字符:

node.FirstChild.InnerText = _
    "<httpRuntime executionTimeout=""999999"" maxRequestLength=""2097151"" />"

我只是在猜测:您可以将String.Format方法用于您的目的:

 node.FirstChild.InnerText = _
    String.Format( _
        "<httpRuntime executionTimeout=""{0}"" maxRequestLength=""{1}"" />", _
        timeoutValue.ToString(), reqLenValue.ToString())

你需要提供更多关于你如何<!>的信息;看到<!>结果。根据我的经验,这方面的问题很可能是在调试器中查看字符串,因为首先要获得正确的字符串。

除了报价之外,我真的不明白为什么你需要使用Chr(60)等。在代码中使用<>会发生什么?

强烈建议您将字符串转储到控制台而不是使用调试器 - 调试器会尝试向您展示如何在代码中表示字符串,而不是逐字显示内容。

当然,如果这是XML,那么我希望再次序列化XML以最终逃避<=>和<=> - 再次,有关您尝试做的更多信息会有所帮助。绝对的理想(IMO)将是一个简短但完整的程序来演示这个问题 - 一个小型控制台应用程序可以做一件事,并描述你想要它做什么。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top