我有一个基于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);
答案 0 :(得分:0)
您必须创建一个新文档并在没有命名空间的情况下重建整个xml树!应该很容易递归地遍历树并仅使用忽略前缀的getLocalName()
方法构建新元素。