java - Java中最简单的xml解析器,为xml中的新手生成代码

标签 java xml parsing

伙计们,我是 Java 中的 xml 新手。

我有以下任务。我需要解析一些 xml 文件(特别是 h xcb-proto [X11])以在 java 中生成等效的请求协议(protocol)。已经有一个定义良好的 xsd 和协议(protocol)的相应 xml。解决此问题的最佳和最简单的方法/解析器是什么?

现有 xml 内容示例:

  <request name="SetScreenSaver" opcode="107">
    <pad bytes="1" />
    <field type="INT16" name="timeout" />
    <field type="INT16" name="interval" />
    <field type="CARD8" name="prefer_blanking" enum="Blanking" />
    <field type="CARD8" name="allow_exposures" enum="Exposures" />
  </request>

这将生成一个 Java DOM (?) 对象。有了这个,我需要用 Java 生成给定的代码。对于这种情况是:

期望的输出:

public void setScreenSaver(int timeout, int interval, int preferBlanking, int allowExposures) {
    RequestOutputStream o = outputStream;
    synchronized (o) {
        o.beginRequest(107, 0, 1); // Major Opcode , Minor Opcode, ReqLength
        o.writeInt16(timeout);
        o.writeInt16(interval);
        o.writeInt8(preferBlanking);
        o.writeInt8(allowExposures);
        o.send();
    }
}

似乎 XSOM 是提供更简单方法的方法...

PS: 我从来没有在 Java 中操作过 xml 文件:3

最佳答案

您应该研究一下 JAXB。它附带一个实用程序,该实用程序将使用 .XSD 文件生成所有 Java 代码以确定结构。

关于java - Java中最简单的xml解析器,为xml中的新手生成代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3428746/

相关文章:

java 从字符串中加载类

java - 持久性单元错误 更多 2 EntityManager s1 持久性单元?

java - 解析 ArrayList 中的 ArrayList 不起作用。

xml - AndroidManifest.xml 中的错误

c++ - 调车场:缺少运算符(operator)参数

mysql - 从列中提取字母和数字部分

java - ImageView 在 Android 中不起作用

java - Getter 总是返回 Null 值

xml - (XSLT,代码优化)如何输出引用兄弟节点值的节点..?

java - 抽屉导航菜单中的多行文本