Java程序编辑文件以选择记录

标签 java

我有以下 XML 文件:

<graph caption="ECG Data Wave" subcaption="For Person's Name" xAxisName="Time" yAxisMinValue="-0.025" yAxisName="Voltage" decimalPrecision="5" formatNumberScale="0" numberPrefix="" showNames="1" showValues="0" showAlternateHGridColor="1" AlternateHGridColor="ff5904" divLineColor="ff5904" divLineAlpha="20" alternateHGridAlpha="5">
    <set name="12:00:00.01" value="0.600000" hoverText = "The difference from last value: 0" ></set>
    <set name="12:00:00.02" value="0.640000" hoverText = "The difference from last value: 0.04" ></set>
    <set name="12:00:01.025" value="0.340000" hoverText = "The difference from last value: -0.3" ></set>
    <set name="12:00:01.031" value="0.100000" hoverText = "The difference from last value: -0.24" ></set>
    <set name="12:00:01.039" value="-0.100000" hoverText = "The difference from last value: -0.2" ></set>
    <set name="12:00:01.050" value="-0.200000" hoverText = "The difference from last value: -0.1" ></set>
    <set name="12:00:02.01" value="0.010000" hoverText = "The difference from last value: 0.21" ></set>
    <set name="12:00:02.12" value="0.600000" hoverText = "The difference from last value: 0.59" ></set>
    <set name="12:00:02.23" value="0.500000" hoverText = "The difference from last value: -0.1" ></set>
    <set name="12:00:02.028" value="0.300000" hoverText = "The difference from last value: -0.2" ></set>
    <set name="12:00:02.031" value="0.100000" hoverText = "The difference from last value: -0.2" ></set>
    <set name="12:00:03.049" value="0.000000" hoverText = "The difference from last value: -0.1" ></set>
    <set name="12:00:03.145" value="-0.050000" hoverText = "The difference from last value: -0.05" ></set>
    <set name="12:00:04.12" value="0.110000" hoverText = "The difference from last value: 0.16" ></set>
    <trendlines>
      <line startvalue="0.30" displayValue="High Activity" color="FF0000" thickness="1" isTrendZone="0"></line>
      <line startvalue="-0.05" displayValue="Low Activity" color="009999" thickness="1" isTrendZone="0"></line>
    </trendlines>
</graph>

我想编写一个 Java 程序,允许用户选择起始范围和结束范围,以便只有这些数据点最终出现在新文件中。例如,假设用户想要第二个值到第六个值,因此新的 XML 文件如下:

<graph caption="ECG Data Wave" subcaption="For Person's Name" xAxisName="Time" yAxisMinValue="-0.025" yAxisName="Voltage" decimalPrecision="5" formatNumberScale="0" numberPrefix="" showNames="1" showValues="0" showAlternateHGridColor="1" AlternateHGridColor="ff5904" divLineColor="ff5904" divLineAlpha="20" alternateHGridAlpha="5">
   <set name="12:00:00.02" value="0.640000" hoverText = "The difference from last value: 0.04" ></set>
   <set name="12:00:01.025" value="0.340000" hoverText = "The difference from last value: -0.3" ></set>
   <set name="12:00:01.031" value="0.100000" hoverText = "The difference from last value: -0.24" ></set>
   <set name="12:00:01.039" value="-0.100000" hoverText = "The difference from last value: -0.2" ></set>
   <set name="12:00:01.050" value="-0.200000" hoverText = "The difference from last value: -0.1" ></set>
   <trendlines>
     <line startvalue="0.30" displayValue="High Activity" color="FF0000" thickness="1" isTrendZone="0"></line>
     <line startvalue="-0.05" displayValue="Low Activity" color="009999" thickness="1" isTrendZone="0"></line>
   </trendlines>
</graph>

实现这一目标的最佳方法是什么?有些人建议使用数组,而另一些人则建议使用列表,所以有点困惑。

问候, 安东尼。

嗯,我有一些代码,但说实话,从我解析的不同 XML 文件中得出的结果并不好,只是将数据返回到屏幕。它使用了

javax.xml.parsers.DocumentBuilder; 
javax.xml.parsers.DocumentBuilderFactory; 
java.io.File; 
org.w3c.dom.Document;
org.w3c.dom.Element;
org.w3c.dom.Node;
org.w3c.dom.NodeList;

这有什么帮助吗?

最佳答案

基本上您需要执行以下操作:

  • 打开 XML 文件,很可能从中创建一个 InputStream(文件、网络...)
  • 将其提供给 XML 解析器
  • 遍历节点并根据用户输入进行过滤
  • 或者,您可能想使用 XPath 来过滤节点

如果您提到您将使用哪个 XML 库,那么为您提供一些代码片段会更容易。

关于Java程序编辑文件以选择记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3626335/

相关文章:

java - CodeName1 - ipa 和源代码之间的不同响应代码

java - Z3 将 FuncInterp 设为 Null

java - 在 GWT 中,是否可以将文件上传重定向到另一个 REST 服务?

java - 如何在 Java 中循环参数

java - 为什么 keyStore.aliases() 对于 pkcs12 是空的

java - 我应该在哪里存储图像(和其他文件)以供我的 Java 程序使用?

java - session 超时(session.setMaxInactiveInterval)在 Google Appengine 中不起作用

java - 关于将一个数字分成数千

java - JSF/JPA - 多个复选框

java - 用于 Java/Android 的 echoprint 代码生成器