2

我正在创建一个 Java 应用程序。在第一次运行时,我的应用程序将下载所需的 Java 库和一些图像。我的朋友帮我管理我的文件服务器。他创建了一个 XML 文件,其中包含有关所需文件的所有信息。

这是 XML 文件的一部分

    <Files>
        <Url>lib/lwjgl.jar</Url>
        <DareCreated>2013-04-30T09:25:54.000Z</DateCreated>
        <Size>2389</Size>
    </Files>

    <Files>
        <Url>img/Icon.png</Url>
        <DateCreated>2013-05-21T12:26:15.000Z</DateCreated>
        <Size>56</Size>
    </Files>

例如,我希望我的 Java 应用程序获取 XML 文件的内容<Url>XXX/XXX.jar</Url>。然后,我的应用程序将从我的 Web 服务器下载文件。

我的文件的 Url 会是这样的,www.xxx.com/XML/ + <Url>X</Url>XML 文件中的内容。

例如,www.xxx.com/XML/img/Icon.png。如何获取“Url”的包含然后将其转换为字符串(或 Url)以便我的下载器下载它?这个 XML 文件很长,它包含 100 多个要下载的文件。

先谢谢了。

4

3 回答 3

0

我将您的 xml 更改为更好的结构:

    <xml version="1.0"?>
      <Files>
        <File>
          <Url>lib/lwjgl.jar</Url>
          <DateCreated>2013-04-30T09:25:54.000Z</DateCreated>
          <Size>2389</Size>
        </File>
        <File>
          <Url>img/Icon.png</Url>
          <DateCreated>2013-05-21T12:26:15.000Z</DateCreated>
          <Size>56</Size>
        </File>
      </Files>

这可以与 xsd 相关联,如下所示:

    <xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified"     xmlns:xs="http://www.w3.org/2001/XMLSchema">
      <xs:element name="Files">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="File" maxOccurs="unbounded" minOccurs="0">
              <xs:complexType>
                <xs:sequence>
                  <xs:element type="xs:string" name="Url"/>
                  <xs:element type="xs:dateTime" name="DateCreated"/>
                  <xs:element type="xs:short" name="Size"/>
                </xs:sequence>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
    </xs:schema>

然后,在许多可能性中,您可以从 xsd 生成 jaxb 类,将它们添加到您的类路径中。完成后,您可以编组/解组提取 url 的 xml。
使用 jaxb 的一个非常简单的示例在这里:
http ://www.javacodegeeks.com/2011/02/jaxb-generate-xml-xsd.html

它描述了类生成(简单案例)和 main() 中的用法。

于 2013-09-01T15:57:13.463 回答
0

我认为你需要一个 xml 解析器

前任。JDOM

JDOM 很简单,就是 XML 文档的 Java 表示。JDOM 提供了一种表示该文档的方法,以便于轻松高效地读取、操作和写入。它有一个简单的 API,轻量级和快速,并且针对 Java 程序员进行了优化。它是 DOM 和 SAX 的替代品,尽管它可以很好地与 DOM 和 SAX 集成。

还有很多其他的。只需检查这是否是实现您想要的目标所需要的。

于 2013-09-01T15:33:09.177 回答
0

我敢肯定,您一定知道 OXM(对象 XML 映射)。有很多方法可以实现你想要的。

我会建议你最简单的。请您的朋友为包含所有 URL 的 XML 文件生成 XSD(XML 模式定义)。

然后编写一个简单的 java 代码来编组您在上面使用JAXBMarshaller或添加的 XML 文件XMLBeans

您将获得与此 XML 对应的 java 对象以及作为 java 对象属性的所有标记。

之后,您可以简单地使用 get 方法通过遍历属性列表来获取 URL 标记的值 :)

编辑:您也可以使用 SAX 解析器或 DOM 操作来提取值,但我发现 OXM 更好。

希望这可以帮助。

于 2013-09-01T15:33:44.303 回答