0

我有一个架构,我使用XmlBeans将 Java 对象归为一类。我无法控制通过的数据。

一个这样的字段看起来像<Name>Barnes & Noble</Name>

&在出现词法错误的字符处解析失败。有没有办法在解析 XML 文件时指定一个选项以忽略某些特殊字符?

你能提供的任何帮助都会很棒。

4

3 回答 3

3

不,这是无效的 XML。与号必须转义为“&”。

您可以在将其解析为 XML 之前手动转义所有 & 符号,但这可能会混淆其他 XML 实体。

于 2010-06-04T07:12:28.387 回答
0

您可以将其解析<Name>Barnes & Noble</Name>为 XPL,然后将其输入任何 XML 进程。XPL 就像 XML 一样,只是它允许在文本元素中使用 XML 的特殊字符

于 2015-02-22T09:03:04.450 回答
-1

您可以使用XmlOptionCharEscapeMap.

从javadocs:

此类用于设置包含要转义的字符的映射。字符可以转义为十六进制、十进制或预定义实体(后一个选项仅适用于在 XML 规范中定义为预定义实体的 5 个字符)。

例如:

  XmlOptionCharEscapeMap escapes = new XmlOptionCharEscapeMap();
  escapes.addMapping('A', XmlOptionCharEscapeMap.HEXADECIMAL);
  escapes.addMapping('B', XmlOptionCharEscapeMap.DECIMAL);
  escapes.addMapping('>', XmlOptionCharEscapeMap.PREDEF_ENTITY);

  XmlOptions opts = new XmlOptions();
  opts.setSaveSubstituteCharacters(escapes);
于 2016-11-11T20:43:58.007 回答