簡體   English   中英

Java程序編輯文件以選擇記錄

[英]Java Program to edit file to select records

我有以下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讀取XML文件的可能性。 我想那對您有幫助。 http://java.sun.com/developer/codesamples/xml.html

對於數組與列表,這僅取決於您將如何實現排序操作。 我通常更喜歡一個List,然后實現一個Comparator來進行排序操作。 從問題中顯示的數據樣本來看,我的理解是,您需要首先按時間戳字段對所有數據進行排序,然后從該排序列表中返回一系列值。

我目前正在使用JAXB基於XML模式生成Java對象,那么XML到Java的轉換是微不足道的。 我不確定您是否已經有一種將XML文件讀入對象的方法。 您是否有XML文件的架構定義? 如果您這樣做,那么JAXB將易於使用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM