【发布时间】:2014-06-09 02:08:45
【问题描述】:
我想问你一个问题。我想使用 sax/dom 解析器从 xml 读取数据,但我不知道如何在 java 中实现代码。任何帮助都非常感谢...
以下是有关要求的文字:
1/xml文件:
<?xml version="1.0" encoding="UTF-8"?>
<rootElement>
<property name="ireport.zoom" value="1.0"/>
<property name="ireport.x" value="0"/>
<property name="ireport.y" value="0"/>
<queryString>
<![CDATA[SELECT * FROM ORDERS]]>
</queryString>
<field name="ORDERID" class="java.lang.Integer"/>
<field name="CUSTOMERID" class="java.lang.String"/>
<field name="EMPLOYEEID" class="java.lang.Integer"/>
<field name="ORDERDATE" class="java.sql.Timestamp"/>
<field name="REQUIREDDATE" class="java.sql.Timestamp"/>
<field name="SHIPPEDDATE" class="java.sql.Timestamp"/>
<field name="SHIPVIA" class="java.lang.Integer"/>
<field name="FREIGHT" class="java.math.BigDecimal"/>
<field name="SHIPNAME" class="java.lang.String"/>
<field name="SHIPADDRESS" class="java.lang.String"/>
<field name="SHIPCITY" class="java.lang.String"/>
<field name="SHIPREGION" class="java.lang.String"/>
<field name="SHIPPOSTALCODE" class="java.lang.String"/>
<field name="SHIPCOUNTRY" class="java.lang.String"/>
<background>
<band splitType="Stretch"/>
</background>
<columnHeader>
<band height="20" splitType="Stretch">
<staticText>
<reportElement uuid="da31a9d4-8ee7-481d-8b51-270539a2fdec" x="460" y="0" width="92" height="20"/>
<textElement>
<font isBold="true" isItalic="true" isUnderline="true"/>
</textElement>
<text><![CDATA[SHIPPEDDATE]]></text>
</staticText>
</band>
</columnHeader>
<detail>
<band height="20" splitType="Stretch">
<textField>
<reportElement uuid="60fb99da-64ef-4bf9-8a96-687c433be35a" x="460" y="0" width="92" height="20"/>
<textElement>
<font isBold="true" isItalic="true" isUnderline="true"/>
</textElement>
<textFieldExpression><![CDATA[$F{SHIPPEDDATE}]]></textFieldExpression>
</textField>
</band>
</detail>
</rootElement>
2/ 预期结果:
element : property
elment value : null
attribute name : name
attribute value : ireport.zoom
attribute name : value
attribute value : 1.0
element : property
elment value : null
attribute name : name
attribute value : ireport.x
attribute name : value
attribute value : 0
element : property
elment value : null
attribute name : name
attribute value : ireport.y
attribute name : value
attribute value : 0
element : queryString
elment value : SELECT * FROM ORDERS
attribute name : null
attribute value : null
element : ORDERID
attribute name : class
attribute value : java.lang.Integer
关于使用 java 程序的 sax/dom 解析器技术有什么想法吗? 提前致谢。
【问题讨论】:
-
您的 xml 文件格式不正确(rootElement 永远不会关闭)。我猜这是复制和粘贴错误?
-
您是否尝试在任何地方搜索“Java SAX 示例”之类的内容?
-
@DavidEhrmann,我也尝试过这样做,但它不符合我的要求。如有需要,请参考这个网址:stackoverflow.com/questions/24113529/…
-
大多数 XML 解析器都带有用于 DOM 和 SAX 的示例程序。如果您没有,请尝试查看the Apache Xerces examples
-
如果您希望在另一个文件或输出流中准确地输出此输出,您应该研究 XSLT 和 FO,而不是用 Java 手写转换。这样,您所要做的就是编写通用代码,真正的工作在您的 .xslt 文件中完成。
标签: java xml saxparser domparser