【问题标题】:How to remove space from xml tag using XStream?如何使用 XStream 从 xml 标签中删除空格?
【发布时间】:2016-08-17 20:22:08
【问题描述】:

我在下面有一个数字值的 xml

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

标签 numLinha 将在 java 中转换为数字属性,但是我收到以下消息,因为标签末尾有空格:

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;
}

【问题讨论】:

  • 你必须使用xstream吗?一个普通的 xml 解析器可以很好地完成这项工作......
  • 我不知道这种方法。我会搜索,但我认为应该是一种删除 xml 空间的方法,也许是使用转换器。 @vtd-xml-作者 3

标签: java xml xstream


【解决方案1】:

我用整数类型的自定义转换器解决了我的问题。

  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());
       }
     }
    

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-01-26
    • 1970-01-01
    • 2012-02-04
    • 1970-01-01
    • 1970-01-01
    • 2011-10-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多