我的项目经理告诉我将所有查询移动到一个xml文件中(他甚至为我做了),所以当用户(通过jsp)选择描述时:“Flusso VLT mensile”他有2个选项,单击搜索、更新或下载,(下载现在可以,但我需要获得文件名),他告诉我使用jaxb,但我认为没有必要
<flow-monitor>
<menu1>
<item id="7" type="simple">
<connection name="VALSAP" />
<description value="Flusso VLT mensile" />
<filename value="flussoVltmensile" />
<select><![CDATA[
SELECT * FROM vlt_sap WHERE stato=7
]]>
</select>
<update>
<![CDATA[update vlt_sap set stato = 0 where stato =7]]>
</update>
</item>
<item id="11" type="simple">
<connection name="VALSAP" />
<description value="Flusso REPNORM BERSANI" />
<filename value="flussoRepnormBersani" />
<select><![CDATA[
select * from repnorm_bersani_sap where stato = 99
]]>
</select>
<update>
<![CDATA[update repnorm_bersani_sap set stato=0 where stato = 99]]>
</update>
</item>
</menu1>
</flow-monitor>
在java上,我应该读取这个xml,并且根据<description value=>
,我应该在其中执行查询,任何方法都可以轻松地读取其中的值,而无需使用大量if语句
有人知道一个好的和简单的方法来实现这一切吗?
谢谢
1条答案
按热度按时间tsm1rwdh1#
有几种方法可以在不使用大量if语句的情况下读取XML文件并提取所需信息。一种方法是使用XML解析库(如JAXB或SAX),并创建Java类来表示XML元素。
在JAXB中,您可以使用javax.xml.bind.Unmarshaller类将XML文件解组为Java对象,然后可以遍历该对象以提取所需的信息。您应该开始创建基于XML结构的Java类,如FlowMonitor、Menu1、Item、Connection等,并使用注解将XML元素Map到字段。然后,你可以使用unmarshaller.unmarshal()方法来解析XML文件并创建FlowMonitor类的示例,该示例将包含XML文件中的所有信息。获得FlowMonitor对象后,可以循环遍历这些项,通过调用项目对象的getDescriptionValue()和getFilenameValue()获取描述和文件名....