我正在生成一个基于 XML 的开放文档格式 (odt) 的文本文档。
但是在文本段落中添加制表符时遇到问题。
当我在 Open Office 应用程序中创建它并保存文档时,该段落的内部 XML 表示形式为:
<text:p text:style-name="P5">Prepared by: <text:tab/>Tim Test</text:p>
自动生成它时,我在源代码中找到了这部分:
Node, Node1: IXMLNode;
...
Node := Node1.AddChild('text:p');
Node.Attributes['text:style-name'] := 'P5';
Node.Text := 'Prepared by: Tim Test';
但我找不到任何方法将节点添加到“Tim”之前的文本中,或者至少无法使用内部 Delphi XML 库。
有没有办法实现它或者是否有其他 Delphi XML 库可以做到这一点?
请记住,XML 是节点的层次结构,包括文本片段。您显示的 XML 在树中看起来像这样:
[element] 'text:p'
│
├─[attributes]
│ │
│ └─[attribute] 'text:style-name'
│ │
│ └─[text] 'PS'
│
└─[children]
|
├─[text] 'Prepared by: '
│
├─[element] 'text:tab'
│
└─[text] 'Tim Test'
这应该可以帮助您直观地了解如何向文档添加节点以获得所需的输出,例如:
Node, Node1, Node2: IXMLNode;
...
Node := Node1.AddChild('text:p');
Node.Attributes['text:style-name'] := 'P5';
Node2 := Node.OwnerDocument.CreateNode('Prepared by: ', ntText);
Node.ChildNodes.Add(Node2);
Node2 := Node.OwnerDocument.CreateElement('text:tab', '');
Node.ChildNodes.Add(Node2);
Node2 := Node.OwnerDocument.CreateNode('Tim Test', ntText);
Node.ChildNodes.Add(Node2);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)