同一XML读取代码在不同项目中输出异常,请求技术协助
XML读取内容显示异常排查求助
同一XML文件和读取代码,在一个项目中能正常读取xrReader.GetAttribute(0)的内容(输出示例:BANKNIFTY23101244200CE),但在另一个项目中读取后日期部分被替换为省略号(输出示例:BANKNIFTY.......44200CE),无法定位差异原因,请求协助排查。
读取代码
Using xrReader As XmlReader = XmlReader.Create(source) Do While xrReader.Read() If xrReader.NodeType = XmlNodeType.Element AndAlso xrReader.Name = "Mapping" Then If xrReader.GetAttribute(0).ToString.StartsWith("BANKNIFTY") Then BankNiftyMappingPresentExpiryDateTextBox.Text = xrReader.GetAttribute(0) End If End If Loop End Using
XML源文件示例
<Mapping symbol="BANKNIFTY23101244200CE" name="44200CE" exchange="" /> <Mapping symbol="BANKNIFTY23101244200PE" name="44200PE" exchange="" /> <Mapping symbol="BANKNIFTY23101244300CE" name="44300CE" exchange="" /> <Mapping symbol="BANKNIFTY23101244300PE" name="44300PE" exchange="" />
排查方向与解决方案
- 检查文本框显示属性:异常项目中的
BankNiftyMappingPresentExpiryDateTextBox可能开启了AutoEllipsis属性,或MaxLength设置过短。可在设计器中关闭AutoEllipsis,并将MaxLength设为0(不限制长度)。 - 验证读取的原始字符串:在赋值后添加调试代码
Debug.WriteLine(xrReader.GetAttribute(0)),确认读取到的字符串本身是否完整。如果调试输出正常,说明是文本框显示问题而非XML读取问题。 - 统一XML读取配置:显式指定
XmlReaderSettings,确保两个项目的读取行为一致:Dim settings As New XmlReaderSettings() settings.IgnoreWhitespace = True Using xrReader As XmlReader = XmlReader.Create(source, settings) ' 原有读取逻辑 End Using - 确认编码一致性:检查XML文件的编码声明(如
<?xml version="1.0" encoding="UTF-8"?>),确保两个项目读取时使用相同编码,避免字符解析异常。
内容的提问来源于stack exchange,提问作者tasklive
相关产品推荐
相关产品推荐

