如何用java规范文本文件中的数据?
具体来说,;我有一个xml文件,里面有很多字母和gps数据,就像这个如何用java规范文本文件中的数据?,java,mapinfo,map-basic,Java,Mapinfo,Map Basic,具体来说,;我有一个xml文件,里面有很多字母和gps数据,就像这个 </Satellites> </PVTInfo> <PVTInfo ValidFlags="14327" Time="51973,3" LastTime="51973,1" Latitude="38,7525418333333" Longitude="35,5297423333333" EllipsoidHeight="1120" GeoidHeight="1089,9" Speed="0
</Satellites>
</PVTInfo>
<PVTInfo ValidFlags="14327" Time="51973,3" LastTime="51973,1"
Latitude="38,7525418333333" Longitude="35,5297423333333"
EllipsoidHeight="1120"
GeoidHeight="1089,9" Speed="0,0166666666666667" Heading="338,9"
MagneticVariation="-5,19999999999999" Depth="0" PDOP="1,476482" HDOP="0,7"
VDOP="0,7" TDOP="0" Status="GPSStatusTypeDOINGFIXES" Mode="GPSModeType3D">
<Satellites>
<SatInfo PRN="69" Elevation="70" Azimuth="240" SNR="43" Used="True" />
<SatInfo PRN="28" Elevation="61" Azimuth="188" SNR="44" Used="True" />
<SatInfo PRN="5" Elevation="41" Azimuth="282" SNR="47" Used="True" />
<SatInfo PRN="10" Elevation="35" Azimuth="202" SNR="47" Used="True" />
<SatInfo PRN="7" Elevation="45" Azimuth="53" SNR="45" Used="True" />
<SatInfo PRN="9" Elevation="31" Azimuth="123" SNR="39" Used="True" />
<SatInfo PRN="74" Elevation="28" Azimuth="172" SNR="35" Used="True" />
<SatInfo PRN="91" Elevation="13" Azimuth="62" SNR="31" Used="True" />
<SatInfo PRN="30" Elevation="69" Azimuth="10" SNR="47" Used="True" />
<SatInfo PRN="78" Elevation="33" Azimuth="324" SNR="39" Used="True" />
<SatInfo PRN="72" Elevation="63" Azimuth="347" SNR="39" Used="True" />
<SatInfo PRN="13" Elevation="25" Azimuth="310" SNR="37" Used="True" />
<SatInfo PRN="39" Elevation="36" Azimuth="139" SNR="37" Used="False" />
<SatInfo PRN="85" Elevation="34" Azimuth="264" SNR="38" Used="False" />
<SatInfo PRN="19" Elevation="15" Azimuth="59" SNR="33" Used="False" />
<SatInfo PRN="20" Elevation="12" Azimuth="181" SNR="38" Used="False" />
</Satellites>
这个文件有35页。所以我有很多线要处理。我只需要点号,纬度和经度。我正在使用地图信息来处理这些数据,所以我需要这种格式的信息
“数字[TAB]纬度[TAB]经度”
否则地图信息无法处理此数据
提前感谢…您可以使用Java XPath使用XQL(Xml查询语言)。这是最短的路
或者,您可以转换(或查找)定义XML文件结构的XSD文件。并使用JAXB(JavaXML绑定)将其转换为一组java类。这将产生可读性最强的代码
另一个选项是使用DocumentBuilder(DOM)加载文件。更少的锅炉板代码
所有3个选项都有(dis)优势。这是一个灵活性、依赖性和个人品味的问题。有很多方法可以读取和解析XML。看看这些。DOM解析比较简单,但需要足够的内存来保存整个文档(XML文件)。如果这是一个反复出现的需求,那么花时间学习JAXB是值得的,否则我将通过下面的示例来拼凑一些东西
另请参见-其中一个答案中有示例代码 我已经看到了答案,我决定在Java中实现这一点的最好方法是DOM(在我的例子中),但为了学习不同的语言,我已经编写了自己的Map Basic代码。就是这样,
Dim str As String, posLat As Integer, posLat1 As Integer, posLat2 As String, posLon As Integer, posLon1 As Integer, posLon2 As String, i As Integer
Open File "C:\Users\Capan\Desktop\Hüseyin\geotrack Log.xml" For Input As #1
Open File "C:\Users\Capan\Desktop\Coordinates3.txt" For Output As #2
Do While Not EOF(1)
Line Input #1, str
If Not EOF(1) Then
posLon = InStr(1,str,"Longitude")
posLat = InStr(1,str,"Latitude")
If posLon > 0 and posLat > 0 Then
posLon1 = posLon + 11
posLon2 = Mid$(str,posLon1,8)
posLat1 = posLat+10
posLat2 = Mid$(str,posLat1,8)
End If
Print #2, " "+posLat2+" "+posLon2
End If
Loop
Close File #1
Close File #2
您是否考虑过使用JAXB或XStream将XML转换为Java对象,然后操纵数据以获得所需的输出?还有人讨厌在没有给出原因的情况下否决问题吗?我发现当用户是新用户时,它特别令人担忧。“欢迎来到苏伊士,用一条鱼打一巴掌”。我这么做已经5年多了,我没有看到任何值得否决的问题。感谢保罗对不合理否决的关注。事实上,我还有一个帐户,我已经用了一年了。但当我问这个问题时,我不在家,所以我刚刚开了另一个账户。我真的不明白当人们投票否决像这样的新用户时。