c++ - _di_IXMLNode 中不需要的 xmlns =""

标签 c++ xml c++builder xmldocument

我正在使用 _di_IXMLDocument 创建一个用于在 Excel 中显示的 xml 文件。但是对于某些标签,我得到了一个不需要的额外(空)xmlns 属性女巫,这使得文件对于 Excel 来说不可读...... 这就是我所做的:

...
_di_IXMLNode worksheet = workbook->AddChild("Worksheet");
worksheet->SetAttribute("ss:Name",Now().DateString());
...

结果是这样的:

<Worksheet xmlns="" ss:Name="2008-12-11">

xmlns从何而来?我该如何摆脱它?

编辑: 更多信息:如果我自己尝试向 Worksheet 添加 xmlns 属性,如下所示:

...
_di_IXMLNode worksheet = workbook->AddChild("Worksheet");
worksheet->SetAttribute("xlmns","Foo");
worksheet->SetAttribute("ss:Name",Now().DateString());
...

那么“Worksheet”的子节点全部取而代之的是空的xmlns属性!

<Worksheet xmlns="Foo" ss:Name="2008-12-11">
  <Table xmlns="">

最佳答案

xmlns代表xml命名空间,如果一个属性没有明确的命名空间,它就没有。

http://www.w3.org/TR/REC-xml-names/

关于c++ - _di_IXMLNode 中不需要的 xmlns ="",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/358972/

相关文章:

c++ - 为什么更改数组的第 0 个索引比第 0 个索引更改更多?

c# - XSLT排序,选择next nearest

c# - 反序列化 xml,包括命名空间

java - 如何在android中创建两个固定大小的 View 和跨越它们之间的一个 View ?

c++ - 我可以使用 wm_copydata 模拟应用程序退出代码吗?

c++ - Borland C++ Builder 6 调整输出可执行文件的大小以适应屏幕

c++ - 为什么写入我的字符串不起作用?

android - 如何在android-ndk项目中使用C++类

c++ - Eigen 中的 Lambda 函数元素

C++ STL 映射异常。 (不可变树的根)