0

この .txt を取り、 .xml として出力する Java コードを作成したいと思います。XML ファイルは仲間のパターンである必要があります。

テキストファイル:

DATA rtr Deme_MS_GDA_DRGH R_2LOAM_OML13 R_OML13_OLMUA

LINE R_LG_OML13_2LOAM_LINETYP_20 0.500 0.250 0.000 0.000 0.000 0.000 0.000 0.000 0.000

シャットダウン MT -1 R_2LOAM_OML13_LSMT -1 e 0.000 NT -1 R_2LOAM_OML13_NTR -1 a 0.000 MT -1 R_2LOAM_OML13_QK R_2LOAM_GG_____GG____ e 0.000

質量 0x0

ショート 0x0 -1 -1 -1 -1

XML での出力は次のようになります。

<?xml version="1.0"?>

<Field>
<DATA  feldsimtyp="rtr" feldtoptyp="Deme_MS_GDA_DRGH" feld="R_2LOAM_OML13"  gegenfeld="R_OML13_OLMUA">            
<LINE          name="R_LG_OML13_2LOAM" leitungstyp="_LINETYP_20" leitungslaenge="0.500" grenzstrom="0.250" unsymL1="0.000"  unsymL2="0.000"  unsymL3="0.000" resistanz="0.000" reaktanz="0.000" betriebskapazitaet="0.000" erdkapazitaet="0.000"/ >
<SHUT>
   <SHUT typ="MT" meldung="-1" name="E_AOLM2_OLM14_VSLT" anschlussknoten="-1" einschaltzustand="e" kurzschlussstrom=0.000"/>    
   <SHUT typ="NT" meldung="-1" name="R_2LOAM_OML13_NTR" anschlussknoten="-1" einschaltzustand="a" kurzschlussstrom=0.000"/>
   <SHUT typ="MT" meldung="-1" name="R_2LOAM_OML13_QK" anschlussknoten="R_2LOAM_GG_____GG____" einschaltzustand="e" kurzschlussstrom=0.000"/>   
</SHUT>
  <MASS  bitmsake="0x0">
  </MASS> 
<SHORT  bitmaske="0x0" schalter1="-1" schalter2="-1" schalter3="-1" schalter4="-1"/>
</Field>
4

2 に答える 2

0

正規表現の場合のようです。これらは、Patternクラスを介してJavaによってサポートされています。

次の例を見て、試してみてください。

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class RegexDemo {

public static void main(final String[] args) {
    final String data = "#DATA  rtr Deme_MS_GDA_DRGH R_2LOAM_OML13 R_OML13_OLMUA";
    final Pattern PATTERN = Pattern.compile("^#DATA\\s+(\\w+)\\s+(\\w+)\\s+(\\w+)\\s+(\\w+)$");
    final Matcher matcher = PATTERN.matcher(data);
    if (matcher.matches()) {
        final String xmlData = String.format("<DATA a='%s' b=%s c=%s d=%s />", matcher.group(1), matcher.group(2), matcher.group(3), matcher.group(4));
        System.out.println(xmlData);
    }

}

}

于 2012-08-10T09:44:50.797 に答える
0

現状では、簡単な方法はないと思います。

ファイルを反復処理し、カスタムロジックを使用して自分で解析してから、 StAXなどを使用してXMLを最初から作成することもできます。

于 2012-08-10T09:38:07.767 に答える