0

我正在尝试使用node.js和 npm 包创建 XML 文件xmlbuilder。当我尝试创建标签时,我有一些特殊字符,: / etc因此我收到以下错误: Error: Invalid character in name: http://google.com.http://google.com

我该如何解决这个问题。我可以用空白替换它,但我不想这样做,我希望我的 XML 保留这些特殊字符。

var root        =   builder.create('test:document')
var ObjectEvent =   root.ele('ObjectEvent')

for(var ex=0; ex<Extension.length; ex++)
{
    Extension[ex].NameSpace     =   Extension[ex].NameSpace;
    Extension[ex].LocalName     =   Extension[ex].LocalName;
    Extension[ex].FreeText      =   Extension[ex].FreeText;
    ObjectEvent.ele(Extension[ex].NameSpace+Extension[ex].LocalName,Extension[ex].FreeText).up()
}
ObjectEvent.ele(Extension[ex].NameSpace+'.'+Extension[ex].LocalName,Extension[ex].FreeText).up()

我的Extension元素看起来像这样;

[
  {
    NameSpace: 'http://google.com',
    LocalName: 'http://google.com',
    ExtensionVlaues: 0,
    FreeText: 'Google Website',
    '$$hashKey': 'object:290'
  }
]

我想知道如何在我的 XML 文档中保留所有特殊字符

4

1 回答 1

2

XML 命名空间可以是 URI,但 XML 元素名称不能:/不允许在 XML 元素名称中使用。

我想知道如何在我的 XML 文档中保留所有特殊字符

意识到您的错误与XML 文档中的特殊字符无关;它与 XML 元素名称中的特殊字符有关。

关于 XML 元素,您只需遵守标准中关于 XML 元素名称中允许的字符的规则。否则,您的数据不是 XML,您和您的调用者将无法使用 XML 工具和库。

另请参阅如何包含?和 / 在 XML 标记中

于 2020-07-02T22:17:27.863 回答