2011-07-30 3 views
5

私はJavaでのSAXParserFactoryとうまくXMLを解析することができますが、いくつかのファイル、 にいくつかの非小文字の属性はlinear3D="0.5"などJavaでSAXを使用してXMLを解析します。大文字と小文字は区別されません。

ように私は何とか

attributes.getValue(attr) 

ケースをしたいと思い、存在しています-insensitiveなので、attributes.getValue("linear3d")は "0.5"を返します。

このタイプのxmlでこれを行う際にあいまいさがないので、最初にファイルを文字列として読み込み、小文字に変換してから解析します( )。 しかし、これはもっと簡単に行うことができますか?

+0

を書きます。 XMLは大文字と小文字を区別します。大会に反対しないでください。 –

+0

残念ながら、私は.xml標準をほぼ満たしている.flameファイルを解析しようとしています。私は、サードパーティのソフトウェアによって作成されているので、その構文を制御することはできません。 –

+0

それはどういう意味ですか?それが常にlinear3dまたはlinear3Dであるという保証はありませんか? –

答えて

4

ファイル全体を小文字に変換するのではなく、以下の方法が優れています。これは、選択されたタグのすべての属性を反復処理し、大文字と小文字を無視します。 たDefaultHandlerのimplementaionインサイド

はあなたではなく、あなたのモデルを変更する必要があり、以下の方法

private String getValueIgnoreCase(Attributes attributes, String qName){ 
    for(int i = 0; i < attributes.getLength(); i++){ 
     String qn = attributes.getQName(i); 
     if(qn.equalsIgnoreCase(qName)){ 
      return attributes.getValue(i); 
     } 
    } 
    return null; 
} 
関連する問題