java - 无法使用 JAXB 正确解码包含选项卡的 XML 文件?

标签 java xml jaxb unmarshalling

我有一个 xml 文件,如下所示:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
<billFile fileName=".dat" hasHeader="false" fieldDelimiter="    "/>

fieldDelimiter 包含一个制表符。当我调用 Unmarshaller.unmarshal 将此 xml 文件转换为对象时,制表符被空格替换。我希望它保留为选项卡。这是我的java代码:

import java.io.StringReader;

import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Unmarshaller;
import javax.xml.transform.stream.StreamSource;


public class XMLToConfig
{
  public static void main(String[] args) throws JAXBException
  {
    String input                  = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>    <billFile fileName=\".dat\" hasHeader=\"false\" fieldDelimiter=\" \"/>";
    JAXBContext jaxbContext       = JAXBContext.newInstance(BillFile.class);
    Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller();
    BillFile bf                 = (BillFile)jaxbUnmarshaller.unmarshal(new StreamSource(new StringReader(input), "UTF8"));
  }
}

最佳答案

您必须使用制表符的 Unicode,而不是真正的制表符:

unicode for tab and sapce

关于java - 无法使用 JAXB 正确解码包含选项卡的 XML 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36332466/

相关文章:

c# - 实现 IXmlSerializable 的正确方法?

java - JAXB 编码器将父类(super class)编码为根元素并使用 xsi :type

java - 从通用 SOAP 请求实现 ResultSet 接口(interface)

java - 按钮未出现,空指针异常

java - Groovy 沙箱和 Java : execute Groovy script

java - 当线程通过另一个类调用同步方法时会发生什么?

xml - 如何从 Delphi Prism 中的 XML 模式生成 Pascal 代码?

Java:混合(数据类型)变量参数

java - spring ws SOAP 客户端+jaxb2

java - 在构造函数上注入(inject) java.util.Random