java - xml尖括号改为&符号lt分号

标签 java

我有以下代码,我的消息采用 xml 格式,数据量很大。我没有收到我的消息 和 。 Xml 尖括号现已转换。我想要尖括号而不是 & 符号 lt 分号。

<createOrderRequestType xmlns:ns2="http://xmlns.oracle.com/communications/ordermanagement">
    <msg>&lt;head&gt;&lt;/head&gt;
&lt;/body&gt;
</msg>
</createOrderRequestType>

<msg>
<head> </head>
<body> </body>
</msg>

public CreateOrderResponseType createAncillariesBySoloOrderId(String soloOrderId) {
        String message = findOrderBySoloOrderId(soloOrderId);

        final Pattern pattern = Pattern.compile("<msg xmlns=\"\">(.+?)</msg>", Pattern.DOTALL);
        final Matcher matcher = pattern.matcher(message);
        matcher.find(); 
        String msgStr =  matcher.group(1) ;
        log.info("message = " + msgStr );
CreateOrderRequestType createOrderRequestType = new CreateOrderRequestType() ;      
        Document doc;
        try {
            doc = DocumentBuilderFactory.newInstance().newDocumentBuilder().newDocument();
            Element msg = doc.createElement("msg");
            msg.setTextContent(msgStr);
            doc.appendChild(msg);
            createOrderRequestType.getAny().add((Element) doc.getFirstChild());

            StringWriter sw1 = new StringWriter();
            JAXB.marshal(createOrderRequestType, sw1);
            String xmlString = sw1.toString();
            log.info("xmlString = " + xmlString); 

        } catch (ParserConfigurationException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }       
 return getOSMService(osmServiceUrl).createOrder(createOrderRequestType);
}   



public class CreateOrderRequestType {

    @XmlAnyElement(lax = true)
    protected List<Object> any;

public List<Object> getAny() {
        if (any == null) {
            any = new ArrayList<Object>();
        }
        return this.any;
    }

}

最佳答案

这取决于 XSD

但是,我认为会是:

...
@XmlRootElement(name = "CreateOrderRequestType") // or probably (name = "CreateOrderRequest")
public class CreateOrderRequestType {
...

还有回复

...
@XmlRootElement(name = "CreateOrderResponseType") // or probably (name = "CreateOrderResponse")
public class CreateOrderResponseType{
...

关于java - xml尖括号改为&符号lt分号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60306949/

相关文章:

java - 使用 values() 方法从 LinkedHashMap 获取条目的 LinkedList

java - 干净的代码 - 应该在哪里应用 @Autowired?

java - 在 Java 中访问网络,命令行参数?

Java编译器不会进入我的for循环?

java - 带有.a​​ddCacheFile的Hadoop Mapreduce CompileError(使用外部Jar)

java - 如何在 MyBatis 中使用 UUID 类型处理程序和 @Many 注释?

java - 在 Java 中从文件添加字符串的 Hashmap 问题

java - 为什么线程优先级不起作用?

java - 在 Kotlin 中用成员表达 Java 注解类

java - 简单的密码和 I/O