数据没有添加到xml节点?获取错误:输出错误:字符值无效

时间:2014-01-30 13:51:53

标签: c libxml2

我正在尝试构建和xml并尝试将大块字符串添加到xml节点。 我非常规律地得到三个错误(不是每次都有三个错误)。以下是三个错误:

output error : string is not in UTF-8
xml escape entities char out of range
output error : invalid character value

在前两个错误的情况下,即使显示错误,数据也会添加到xml节点。但是当我得到第三个错误output error : invalid character value时,字符串数据没有被添加到xml节点。不知道哪里出错了。

有人可以指导我解决上述问题吗?我正在使用libxml2库和C平台

1 个答案:

答案 0 :(得分:2)

错误string is not in UTF-8应该是不言自明的。 libxml2期望所有输入字符串(xmlChar *)都以UTF-8编码。

如果添加XML 1.0中不允许的ASCII控制字符,则会发生错误xmlEscapeEntities : char out of range,其中包括0到31之间的所有ASCII字符,但tab,换行符和回车符除外(0x09,0x0A,0x0D)。

对于XML 1.0中不允许的所有类型的字符,可能会出现错误invalid character value。例如,ASCII控制字符,Unicode代理或其他无效的Unicode代码点。

因此,您添加的字符串包含无效的UTF-8,无效的ASCII控制字符或两者。解决方案是首先清理您的输入。