题
需要帮助我在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)将是一个简短但完整的程序来演示这个问题 - 一个小型控制台应用程序可以做一件事,并描述你想要它做什么。
不隶属于 StackOverflow