在XML解析器中处理非标准引号的最佳方法

本文关键字:最佳 方法 非标准 处理 XML | 更新日期: 2023-09-27 18:17:29

我正在创建一个用XML格式处理文本的程序。我发现,当标签值是非ASCII引号(双引号/ASCII 34,单引号/ASCII 39)时,解析会抛出异常。这些引语可能来自Ms Word(自动格式化)等编辑软件。

目前我解析文本框的每一行,并在处理XML之前替换引号。下面是代码(c#)

int nLines = textBox1.Lines.Length;
for (int i = 0; i < nLines; i++)
{
    // get the current line and replace quotes with standard ones
    line = Regex.Replace(textBox1.Lines[i], "['u2018|'u2019|'u201A]", "'");
    line = Regex.Replace(line, "['u201C|'u201D|'u201E]", "'"");

我想知道是否有更好/更正确/更快的方法来实现这一点?我所说的更正确的方法是指该方法应该涵盖几乎所有的引号(我听说'd可以用于0-9和unicode)。提前感谢!

在XML解析器中处理非标准引号的最佳方法

'p{Pi}'p{Pf}类可以用来匹配这类引号。但是,它们并不区分单引号和双引号。

'p{Pi} ->左引号

'p{Pf} ->右引号