首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PBDOM :导出到XML文件会给出一行

PBDOM :导出到XML文件会给出一行
EN

Stack Overflow用户
提问于 2014-03-04 10:44:12
回答 1查看 1.5K关注 0票数 0

几周前,我开始使用PowerBuilder 12.5进行开发。我不得不编写一些XML文件,所以我熟悉了PBDOM库。

我可以建造很多不同的东西,它很好,但有一件事仍然困扰着我:

在输出文件中,将整个XML写在一行上。

我使用SaveDocument函数。

例如,下面是一些代码:

代码语言:javascript
复制
PBDOM_Document              doc
PBDOM_Element               noderoot, node1, node11, node12

doc = CREATE PBDOM_Document
doc.NewDocument("NodeRoot")
noderoot = doc.GetRootElement()

node1 = CREATE PBDOM_Element
node1.SetName("Node1")
noderoot.AddContent(node1)
node1.SetAttribute("Attr", "AttrValue")

node11 = CREATE PBDOM_Element
node11.SetName("Node11")
node11.AddContent("Here is a value")
node1.AddContent(node11)

node12 = CREATE PBDOM_ELEMENT
node12.SetName("Node12")
node12.AddContent("Here is another value")
node1.AddContent(node12)

doc.SaveDocument("myDoc.xml")

下面是我用notepad++打开它的结果

代码语言:javascript
复制
<NodeRoot><Node1 Attr="AttrValue"><Node11>Here is a value</Node11><Node12>Here is another value</Node12></Node1></NodeRoot>

而我想:

代码语言:javascript
复制
<NodeRoot>
    <Node1 Attr="AttrValue">
        <Node11>Here is a value</Node11>
        <Node12>Here is another value</Node12>
    </Node1>
</NodeRoot>

使用notepad++ XML工具插件,我可以使用“漂亮的打印”函数来获得这个很好的表示。但是我希望我的文件从一开始就以这种方式格式化。我注意到“行尾”被设置为UNIX格式(窗口右下角的指示器),但我正在处理Windows。当我使用菜单将其转换为Windows (CR+LF)时,它会更改此指示符,但代码保留在一行上。

有没有一种方法可以告诉PBDOM用一个很好的输出来导出XML文件?

谢谢!

备注:

  • 打开带有Internet或Google的XML文件给了我一个很好的可视化,带有缩进,换行.
  • 添加一个<?xml version="1.0" encoding="ISO-8859-1" ?>没有帮助(我一直在导出一些更复杂的文件时就这样做了,但是我仍然在一行中得到了输出.)
EN

回答 1

Stack Overflow用户

发布于 2014-04-22 13:38:34

与使用pbdom编写xml文档不同,您可以在可能的情况下执行以下操作:

  1. 创建一个具有必要字段的数据窗口对象。
  2. 在datawindow设计视图中设计xml模板。
  3. 注意:在datawindow的export选项卡中,有一个名为“”的选项,请检查它。
  4. 在运行时填充数据窗口/数据存储中的数据。
  5. 使用saveas类型的xml执行数据窗口/数据存储的saveas。

现在,您将有一个格式化良好的xml文档。这也很容易。

看看这个有用吗。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22169694

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档