1

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

我的代码

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"/>"
4

3 回答 3

1

也许这不能回答您的问题,但您可以使用两个双引号来转义 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())
于 2009-03-09T13:13:02.707 回答
1

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

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

请注意,Chr marlarky 是不必要的,您是否试图避免<并将>其编码为 XML 实体?

于 2009-03-09T13:18:11.057 回答
0

你需要提供更多关于你如何“看到”结果的信息。以我的经验,这方面的问题很可能是在调试器中查看字符串和首先获取正确的字符串。

Chr(60)除了引号之外,我真的不明白为什么你需要使用etc。当您只在代码中使用<and时会发生什么?>

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

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

于 2009-03-09T13:11:24.147 回答