作者:漂亮的乖猫9898 | 来源:互联网 | 2023-09-15 12:27
我正在.docx
Delphi 中使用 OpenXML创建一个文件。当我docPropsapp.xml
在 Delphi 中创建以生成 docx 时,由于某种原因总是添加一个标签。
我要创建的 XML 文件是这样的:
xmlns:vt="http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes">
Normal.dotm
1
1
1
...
通过做这个:
var
Root: IXMLNode;
Rel: IXMLNode;
Root := XMLDocument1.addChild('Properties');
... //attributes are added here
Rel := Root.AddChild('Template');
Rel.NodeValue := 'Normal.dotm';
Rel := Root.AddChild('TotalTime');
Rel.NodeValue := '1';
...
我期待上面的代码在顶部生成 XML 文件,但我得到了这个:
Normal.dotm
1
xmlns
由于某种原因添加了该属性。有没有办法在顶部实现预期的 XML?
回答
创建元素时显式提供命名空间 URI:
const
PROP_NS = 'http://schemas.openxmlformats.org/officeDocument/2006/extended-properties';
var
Root: IXMLNode;
Rel: IXMLNode;
Root := XMLDocument1.AddChild('Properties', PROP_NS);
Rel := Root.AddChild('Template', PROP_NS);
Rel.NodeValue := 'Normal.dotm';
Rel := Root.AddChild('Pages', PROP_NS);
Rel.NodeValue := '1';