Xercesc - NAMESPACE_ERR:试图以与名称空间相关的错误方式创建或更改对象
Xercesc - NAMESPACE_ERR: An attempt is made to create or change an object in a way which is incorrect with regard to namespaces
我正在使用Xercesc-3-1,并且我正在尝试解析XPath。代码如下所示:
auto result = documents[ref.refDoc]->evaluate(XMLString::transcode(ref.oldXPath.c_str()),
documents[ref.refDoc],
documents[ref.refDoc]->createNSResolver(documents[ref.refDoc]->getFirstChild()),
DOMXPathResult::STRING_TYPE,
nullptr);
文档根目录的第一个子目录包含xml:example定义。我没有看到问题,但我得到一个DOMException:
异常消息:试图以与名称空间相关的不正确的方式创建或更改对象
我在Stackoverflow上找到的所有链接都没有帮助我。有人能直接帮我吗?
我知道问题是什么了,想在这里回答这个问题。也许别人也有同样的问题……
代码正确。问题是通过解析xml文件产生的。创建DOMDocument的解析器不能正确解析名称空间,因为setDoNamesspace(…)默认设置为false。因此,dom树中没有设置名称空间,这导致了错误。这里的问题是,如果只打印dom树,它将显示正确的名称空间和名称。
有关如何正确配置解析器的更多信息:https://xerces.apache.org/xerces-c/apiDocs-3/classAbstractDOMParser.html#a1962795fff331583b34b78229364ded7
相关文章:
- 重载方法的方式会在使用临时调用时生成编译器错误
- C++通过别名指针以静默方式将错误的类型分配给数组元素
- 我试图创建临时对象的方式有错误吗
- 我的随机生成器是否不工作,或者我决定人/骨架是否击中对手的方式是否有错误
- 我如何在一个 if 语句中声明所有数字我尝试通过其他方式声明所有数字,如果一个接一个,但似乎代码有逻辑错误
- 我是否以错误的方式声明了getpriorityvalues函数
- 数组数据以错误的方式遍历 Python/Matlab
- 使用分而治之的最大总和子数组,为什么要以不同的方式使用 for 循环,答案是错误的?
- Unity 的 HLSL/Cg 预处理器工作方式错误?
- 识别指针处理方式中的错误
- 在计算机级别,应用程序以二进制方式运行,然后当发生运行时错误时,它如何呈现回错误代码
- 错误:以增量方式填充向量时,表达式必须具有整数或无作用域枚举类型
- 我是否以错误的方式使用记忆屏障
- 我是用错误的方式编译吗?
- C++字符数组以某种方式初始化为错误的大小
- 这种创建带有指向实例的指针的分离 std::thread 的方式是错误的吗?
- 我可以以某种方式从GCC过滤错误消息行
- GCC 以错误的方式解包(我<...)折叠表达式
- 使用枚举的错误方式
- Xercesc - NAMESPACE_ERR:试图以与名称空间相关的错误方式创建或更改对象