2016-08-17 6 views
0

Iスペースタグの端部に存在するので、ただしiはfolowメッセージを受信し、それ以下のXMLは数値XStreamを使用してxmlタグからスペースを削除するには?

<detalhe> 
    <numLinha>1048 </numLinha> 
</detalhe 

numLinha Javaで数attibuteに変換するタグを有し有する:

Exception in thread "main" 
com.thoughtworks.xstream.converters.ConversionException: For input string "1048     " 

@XStreamAlias("detalhe") 
public class BodyDetail implements Serializable { 

    private static final long serialVersionUID = -1000785985130865301L; 

    @XStreamAlias("numLinha") 
    private Integer lineNumber; 
} 
+0

あなたはXStreamのを使用する必要がありますか?プレーンなXMLパーサは仕事をうまくやってくれます... –

+0

私はこのアプローチを知らない。私は検索しますが、私はxmlのスペースを取り除く方法でなければならないと思います。 @ vtd-xml-author 3 – Weles

答えて

0

私は整数型のカスタムコンバータで私の問題を解決します。

  1. まず私は、コンバータを作成しました:私は、コンバータを登録

    package converter; 
    
    import com.thoughtworks.xstream.converters.Converter; 
    import com.thoughtworks.xstream.converters.MarshallingContext; 
    import com.thoughtworks.xstream.converters.UnmarshallingContext; 
    import com.thoughtworks.xstream.io.HierarchicalStreamReader; 
    import com.thoughtworks.xstream.io.HierarchicalStreamWriter; 
    
    public class IntegerConverter implements Converter { 
    
        @SuppressWarnings("rawtypes") 
        @Override 
        public boolean canConvert(Class clazz) { 
         return clazz.equals(Integer.class); 
        } 
    
        @Override 
        public void marshal(Object object, HierarchicalStreamWriter writer, 
         MarshallingContext context) { 
        } 
    
        @Override 
        public Object unmarshal(HierarchicalStreamReader reader, 
         UnmarshallingContext context) { 
         String text = (String)reader.getValue(); 
         Integer number = Integer.parseInt(text.trim()); 
         return number; 
        }  
    } 
    
  2. を:

    public class XMLRead { 
    
        public static void main(String[] args) { 
    
         XStream xStream = new XStream();  
         xStream.registerConverter(new IntegerConverter()); 
        } 
    } 
    
関連する問題