【问题标题】:Loop through all characters in XML file and replace certain characters循环遍历 XML 文件中的所有字符并替换某些字符
【发布时间】:2016-01-07 14:30:42
【问题描述】:

在最终让我的 XmlReader 在工作中的项目上正常工作之后,我现在在尝试为某些 XML 文件创建新的 Reader 对象时遇到某些解析错误。例如,这个不断发生的错误是尝试解析连字符 (-) 的错误。这让我有点困惑,因为我手动输入并用其他字符(如下划线)替换该字符,并且它读起来很好 - 即使文档中其他地方有未更改的连字符。

所以,除非有解释来解决这个问题(可能是一些 XmlReaderSettings?还没有使用任何,所以我不知道它们能做什么),循环遍历每个字符并替换的最佳语法/方法是什么那些可以正确解析的?

该程序将在每天添加的 XML 上每天自动运行一次,运行时间长短不是问题。

编辑:错误消息:

System.Xml.XmlException:解析 EntityName 时出错。第 2896 行,第 89 位。

代码:

            FN = Path.GetFileName(file1).ToString()
        xmlFile = XmlReader.Create(Path.Combine(My.Settings.Local_Meter_Path, FN), New XmlReaderSettings())
        ds.ReadXml(xmlFile)
        Dim dt As DataTable = ds.Tables(13)
        Dim filecreatedate As String = IO.File.GetLastWriteTime(file1)

【问题讨论】:

  • 1440 县道 40 X-MAS LIGHT & RV #2 CAMP HILL
  • X-Mas 中的“-”出现错误
  • 很奇怪。你能显示解析异常消息吗?通过编辑将消息放入问题中。
  • 好的,我编辑了。位置 89 就在 X 之后的那个连字符处。我不明白为什么文档中其他地方的许多其他连字符没有得到相同的处理

标签: asp.net .net vb.net excel


【解决方案1】:

如果问题出现在整个文件中只有一个连字符,即使文件包含更多连字符,问题也可能与:

1) HYPHEN 实际上不是 HYPHEN,而是一个控制字符,甚至是一个隐藏的控制字符。

2) 链接还有其他有趣的东西,比如和号(“&”),在字符串中可能会导致一些问题。您确定问题出在连字符上吗?

【讨论】:

  • 是的,行和字符位置对应于连字符,如上所述。删除后,XMLReader 工作正常 - 即使有其他连字符
  • 如果问题与特定连字符有关,正如我所说,问题可能与控制字符有关,而不是连字符。试着查看这个连字符的 ASCII 码,看看它是否在 ASC(45) 下。你在同一个例程中有任何变量 X 吗?可以解释为“40-x”的东西?
猜你喜欢
  • 2014-12-15
  • 2015-01-17
  • 1970-01-01
  • 1970-01-01
  • 2019-10-31
  • 1970-01-01
  • 2023-03-31
  • 2017-03-29
  • 2015-06-18
相关资源
最近更新 更多