原始的XML amp;由JAXB添加,需要忽略:-
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<emp>
<address>7 stret & new </address>
<name>Naveenqq</name>
</emp>
预期无放大器;(实际价值需要):
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<emp>
<address>7 stret & new </address>
<name>Naveenqq</name>
</emp>
我尝试了以下代码:
private static void jaxbObjectToXML(Emp employee) throws IOException, SAXException, ParserConfigurationException
{
try
{
JAXBContext jaxbContext = JAXBContext.newInstance(Emp.class);
Marshaller jaxbMarshaller = jaxbContext.createMarshaller();
//jaxbMarshaller.setProperty("jaxb.encoding", "US-ASCII");
jaxbMarshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
//jaxbMarshaller.setProperty(OutputKeys.ENCODING, "ASCII");
//jaxbMarshaller.setProperty(CharacterEscapeHandler.class.getName(), new CustomCharacterEscapeHandler());
// jaxbMarshaller.setProperty(CharacterEscapeHandler.class.getName(), new CharacterEscapeHandler() {
//
// @Override
// public void escape(char[] ch, int start, int length, boolean isAttVal, Writer out) throws IOException {
// out.write( ch, start, length );
//
// }
// });
//
// StringWriter writer = new StringWriter();
File file = new File("employee1.xml");
jaxbMarshaller.marshal(employee, file);
//
// DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
// DocumentBuilder builder = factory.newDocumentBuilder();
// InputSource is = new InputSource( new StringReader( writer.toString() ) );
// Document doc = builder.parse( is );
System.out.println("done::");
}
catch (JAXBException e)
{
e.printStackTrace();
}
}
请帮助解决同样的问题,我已经尝试了所有的编码类型
您的期望值不是有效的XML,因此您无法说服任何感知XML的工具生成它。
为什么要尝试生成无效的XML?
问题是
但是,如果观察
JAXB解组后的值,它将被
XML:
<emp>
<address>7 stret & new</address>
<name>Naveenqq</name>
</emp>
根目录:
@Data
@XmlRootElement(name = "emp")
@XmlAccessorType(XmlAccessType.FIELD)
public class Root {
private String address;
private String name;
}
主要内容:
public class Main {
public static void main(String[] args) throws JAXBException, XMLStreamException {
final InputStream inputStream = Main.class.getClassLoader().getResourceAsStream("test.xml");
final XMLStreamReader xmlStreamReader = XMLInputFactory.newInstance().createXMLStreamReader(inputStream);
final Unmarshaller unmarshaller = JAXBContext.newInstance(Root.class).createUnmarshaller();
final Root root = unmarshaller.unmarshal(xmlStreamReader, Root.class).getValue();
System.out.println(root.toString());
Marshaller marshaller = JAXBContext.newInstance(Root.class).createMarshaller();
marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
marshaller.setProperty(Marshaller.JAXB_ENCODING, "US-ASCII");
//marshaller.setProperty("com.sun.xml.internal.bind.xmlHeaders", new XmlCharacterHandler());
marshaller.marshal(root, System.out);
}
}
输出:
Root(address=7 stret & new, name=Naveenqq)
<?xml version="1.0" encoding="US-ASCII"?>
<emp>
<address>7 stret & new</address>
<name>Naveenqq</name>
</emp>
正如你可以看到在输出
Root(地址=7 strt
希望解释有帮助。
有人帮忙吗? 提前道谢。
我有从一个模式创建的JAXB对象。在封送过程中,使用NS2对xml元素进行注释。对于这个问题,我已经尝试了网络上存在的所有选项,但没有一个可行。我不能修改我的模式或更改package-info.java。请帮忙
我有一个关于通过JAXB封送的小问题。 当前我有一个对象的HashMap 由自定义HashMapAdapter封送的being 封送基于以下文章:http://blog.bdoughan.com/2013/06/moxys-xmlvariableNode-using-maps-key-as.html HashMap由布尔值、长值或字符串值填充。 因此,关于Blog,预期的JSON输出应该是: 西蒙
问题内容: 我有一个python编辑器,用户在其中输入脚本或代码,然后将其放入幕后的主要方法中,同时还缩进每一行。问题是,如果用户具有多行字符串,则通过在每个空格中插入制表符,对整个脚本进行的缩进会影响字符串。问题脚本非常简单,例如: 因此,在main方法中,它看起来像: 并且该字符串现在在每一行的开头都有一个额外的制表符。 问题答案: 因此,如果我正确理解它,则可以接受用户输入的任何内容,对其进
在代码中创建了这些类的实例之后,我调用了传递所需值的setter方法。尽管该方法的参数是Object,但其值最有可能是字符串(我无法控制它是如何定义的)。但是,为了保持一致,我将字符串转换为Object,以便它与方法的参数类型匹配。代码如下所示: 当我对Java对象进行整理时,我会在结果XML中得到以下内容,就在字符串值的前面: 我读过关于方法的参数类型和传递给它的数据类型不匹配的文章。在我的例子
我正在构建一系列链接类,我希望这些类的实例能够整理成XML,这样我就可以将它们保存到一个文件中,以后再读进去。 目前我使用以下代码作为测试用例: XML输出为: 元素为空有什么原因吗?我希望它包含日期的字符串表示(即)。为了做到这一点,我需要编写一些我自己的代码吗? 的输出是: