我有一个 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,而不是真正的制表符:
关于java - 无法使用 JAXB 正确解码包含选项卡的 XML 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36332466/