1

我正在尝试创建一个简单的 xml 文档。

我从来没有找到关于它的好文档,所以我只是这样尝试:

Element response = new Element("Artikelliste");
Element artikel1 = new Element("Artikel");
Element artikel2 = new Element("Artikel");
artikel1.setAttribute("nummer", "5678");
artikel1.setAttribute("bezeichnung", "KettenhandschuhXML");
artikel2.setAttribute("nummer", "1011");
artikel2.setAttribute("bezeichnung", "MesserXML");

response.addChild(artikel1);
response.addChild(artikel2);

OutputStream os = Storage.getInstance().createOutputStream("test1234.xml");
OutputStreamWriter writer = new OutputStreamWriter(os);
XMLWriter xmlWriter = new XMLWriter(false);        
xmlWriter.writeXML(writer, response);

FileSystemStorage.getInstance().openOutputStream("test1234.xml").write(response.toString().getBytes());

IllegalArgumentException由于最后一行,我目前得到一个,它说:

test1234.xml 不是有效路径,使用 FileSystemStorage.getInstance().getAppHomePath() 获取有效的 dir 路径来读取/写入文件

如果我更正相应的行,它看起来像这样:

FileSystemStorage.getInstance().openOutputStream( FileSystemStorage.getInstance().getAppHomePath()).write (response.toString().getBytes());

但是程序无法知道是哪个文件??!当我像这样运行代码时,没有错误消息,也没有任何反应,也没有创建文档......

感谢帮助!:)

4

3 回答 3

1

该行:

FileSystemStorage.getInstance().openOutputStream("test1234.xml").write(response.toString().getBytes());

应该:

FileSystemStorage.getInstance().openOutputStream(FileSystemStorage.getInstance().getAppHomePath() + "test1234.xml").write(response.toString().getBytes());

我建议您阅读 Codename One 开发人员指南中的文档,位于文件系统、存储、网络和解析页面:

FileSystemStorage 中的所有路径都是绝对路径,这大大简化了可移植性问题,因为相对性的概念和当前工作目录不是很可移植。

所有 URL 都使用 / 作为其路径分隔符,即使在 Windows 中,我们也会尝试强制执行此行为。

目录以 / 字符结尾,因此可以通过其名称轻松区分。

FileSystemStorage API 提供了一个 getRoots() 调用来列出文件系统的根目录(然后您可以通过 listFiles API “挖掘”)。然而,这对于开发人员来说是令人困惑和不直观的。

为了简化创建/读取文件的过程,我们添加了 getAppHomePath() 方法。此方法允许我们获取可以存储/读取文件的目录的路径。

修复后,您的代码会生成以下 XML:

<Artikelliste>
 <Artikel nummer='5678' bezeichnung='KettenhandschuhXML'>
 </Artikel>
 <Artikel nummer='1011' bezeichnung='MesserXML'>
 </Artikel>
</Artikelliste>

我对 XML 没有直接经验,但请注意 aPropertyBusinessObject可以转换为 XML 或从 XML 转换

于 2020-02-04T21:45:54.123 回答
0

哇,你们太棒了!!!

事实上,该文件隐藏在某个地方,我找到了它。:)

但现在我面临一个新问题,我最初想自己解决这个问题,但是很好。

现在生成的 xml 文档如下所示:

<Artikelliste>
 <Artikel nummer='5678' bezeichnung='KettenhandschuhXML'>
 </Artikel>
 <Artikel nummer='1011' bezeichnung='MesserXML'>
 </Artikel>
</Artikelliste>

但是,我必须让它看起来像这样:

 <Artikelliste>
    <Artikel>
        <nummer>5678</nummer>
        <bezeichnung>KettenhandschuhXML</bezeichnung>
    </Artikel>
    <Artikel>
        <nummer>1011</nummer>
        <bezeichnung>MesserXML</bezeichnung>
    </Artikel>
 </Artikelliste>

谢谢你们支持我。

于 2020-02-06T15:17:16.490 回答
0

非常感谢!:)

我已经进行了更改,但仍然无法正常工作。我用这个路径“/test1234.xml”和这个“test1234.xml”尝试了修改后的行。

但是,这两种尝试都不起作用,也没有创建任何文档。以确保我进行了文档搜索。

于 2020-02-05T08:51:10.473 回答