gpt4 book ai didi

java - JAXB 拆解 cdata

转载 作者:搜寻专家 更新时间:2023-11-01 01:54:07 27 4
gpt4 key购买 nike

我不需要编码器,我已经有了 XML 文件。所以我在关注this guide查看如何解码 CDATA 中的内容。但是,我发现,如果我跳过 main 中的编码部分而只执行解码部分,它似乎不起作用。所以我的主要只是像下面这样

Book book2 = JAXBXMLHandler.unmarshal(new File("book.xml"));
System.out.println(book2); //<-- return null.

我希望在 CDATA 中看到任何内容。我确定我遗漏了什么,但不确定是什么。

最佳答案

要使用 CDATA 解码 XML 元素,您需要做一些特别的事情。以下是您引用的文章中的演示的简化版本。

输入.xml

下面的 description 元素有一个带有 CDATA 的元素。

<?xml version="1.0" encoding="UTF-8"?>
<book>
<description><![CDATA[<p>With hundreds of practice questions
and hands-on exercises, <b>SCJP Sun Certified Programmer
for Java 6 Study Guide</b> covers what you need to know--
and shows you how to prepare --for this challenging exam. </p>]]>
</description>
</book>

下面是我们将 XML 内容解码到的 Java 类,

import javax.xml.bind.annotation.*;

@XmlRootElement
public class Book {

private String description;

public String getDescription() {
return description;
}

public void setDescription(String description) {
this.description = description;
}

}

演示

下面的演示代码将 XML 转换为 Book 的实例。

import java.io.File;
import javax.xml.bind.*;

public class Demo {

public static void main(String[] args) throws Exception {
JAXBContext jc = JAXBContext.newInstance(Book.class);

Unmarshaller unmarshaller = jc.createUnmarshaller();
File xml = new File("src/forum15518850/input.xml");
Book book = (Book) unmarshaller.unmarshal(xml);

System.out.println(book.getDescription());
}

}

输出

下面是 description 属性的值。

<p>With hundreds of practice questions
and hands-on exercises, <b>SCJP Sun Certified Programmer
for Java 6 Study Guide</b> covers what you need to know--
and shows you how to prepare --for this challenging exam. </p>

关于java - JAXB 拆解 cdata,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15511323/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com