xerces-处理标记名称中的名称空间
xerces - Dealing with namespaces in the tag name
我有一个基于XSD的XML,看起来像:
<ns1:root xmlns:ns1="ROOT_NAMESPACE">
<ns1:thing1>abc</ns1:thing>
<ns1:thing2>def</ns1:thing>
</ns1:root>
我在C++中,我可以成功地读取XML并解析它。但我想使用不带命名空间的标记名来获取元素,比如thing1
和thing2
,但目前看来我需要它,比如ns1:thing1
。(我正在尝试使用getElementsByTagName方法。)如何让解析器忽略名称空间?
我的解析器设置是:
myParser.setValidationScheme(XercesDOMParser::Val_Always);
myParser.setExternalSchemaLocation(xsdLocation);
myParser.setDoNamespace(true);
myParser.setDoSchema(true);
myParser.setValidationSchemaFullChecking(true);
您必须创建一个新文档并在没有命名空间的情况下重建整个xml树!递归遍历树并只使用忽略前缀的getLocalName()
方法构建新元素应该很容易。
相关文章:
- 警告处理为错误这里有什么问题
- 在C#中处理C++指针而不使用unsafe的最佳方法
- 为什么两个不同的未命名名称空间可以共存于一个cpp文件中
- 如何处理警告 C4177:#pragma 'float_control' 只能在全局范围或命名空间范围内使用
- 如何在 Linux 用户空间中处理类似 GPIO 中断的处理
- 如何处理boost :: fileSystem ::路径的空间
- 如何处理CPP中弦线中的空间
- 如何使我的功能通过大多数频繁以及如何处理空间来组织?C
- 分配额外的处理空间
- boost::iostreams::copy-sink-ENOSPC(设备上没有剩余空间)错误处理
- 如何处理正向声明中的命名空间
- 用户空间和内核空间进程中的信号处理程序集
- 如何处理不使用命名空间的库
- 如何处理堆栈外空间分段错误
- 如何定义名称空间以及编译器如何处理名称空间
- xerces-处理标记名称中的名称空间
- 为什么我们在Qt中处理表单时要为ui对象声明一个命名空间?
- 如何处理不断变化的c++ std::命名空间?例如:std::tr1::shared_ptr vs. std::shar
- 如何在c++中处理命名空间
- C++如何在可移植代码中处理tr1和非tr1命名空间