- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我看到这里发布了一个类似的问题,但它并没有帮助我解决问题,所以我在这里发布我的问题,看看是否有人可以修改我的代码以使其工作。
问题:如何访问混合内容字符串值并将其保存在 setPhrase(String value) 方法中?
标题.xml:
<?xml version="1.0" encoding="UTF-8"?>
<tt xmlns="link1" xmlns:prefix2="link2" prefix1:att1="att1">
<head>
<styling>
<style prefix1:att1="att1" prefix2:att2="att2" prefix2:att3="att3" prefix2:att4="att4" />
</styling>
<layout />
</head>
<body xmlns:prefix3="link3">
<div prefix1:att1="att1" prefix1:att2="att2">
<prefix3:info att1="att1" att2="att2" />
<p att1="att1" att2="att2" att3="att3">
<prefix3:status att1="att1" att2="att2" />
Hello World.
</p>
</div>
</body>
</tt>
package com;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlElementRef;
import javax.xml.bind.annotation.XmlElementRefs;
import javax.xml.bind.annotation.XmlMixed;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlType;
@XmlRootElement(name = "p")
@XmlType(propOrder = { "att1", "att2", "att3", "phrase", "subelement"})
public class Caption {
private String att1;
private String att2;
private String att3;
private String phrase;
private Subelement subelement = new Subelement();
@XmlMixed
public void setPhrase(String value)
{
this.phrase = value;
}
public String getPhrase()
{
return phrase;
}
@XmlElementRefs({@XmlElementRef(name = "subelement", type = Subelement.class)})
@XmlMixed
public void setSubelement(Subelement subelement )
{
this.subelement = subelement;
}
public Subelement getSubelement()
{
return subelement;
}
@XmlAttribute
public void setAtt1( String att1 )
{
this.att1 = att1;
}
public String getAtt1()
{
return att1;
}
@XmlAttribute
public void setAtt2( String att2 )
{
this.att2 = att2;
}
public String getAtt2()
{
return att2;
}
@XmlAttribute
public void setAtt3( String att3 )
{
this.att3 = att3;
}
public String getAtt3()
{
return att3;
}
}
<?xml version="1.0" encoding="UTF-8"?>
<tt xmlns="link1" xmlns:prefix2="link2" prefix1:att1="att1">
<head>
<styling>
<style prefix1:att1="att1" prefix2:att2="att2" prefix2:att3="att3" prefix2:att4="att4" />
</styling>
<layout />
</head>
<body xmlns:prefix3="link3">
<div prefix1:att1="att1" prefix1:att2="att2">
<prefix3:info att1="att1" att2="att2" />
<p att1="att1" att2="att2" att3="att3">
<prefix3:status att1="att1" att2="att2" />
</p>
</div>
</body>
</tt>
<?xml version="1.0" encoding="UTF-8"?>
<tt xmlns="link1" xmlns:prefix2="link2" prefix1:att1="att1">
<head>
<styling>
<style prefix1:att1="att1" prefix2:att2="att2" prefix2:att3="att3" prefix2:att4="att4" />
</styling>
<layout />
</head>
<body xmlns:prefix3="link3">
<div prefix1:att1="att1" prefix1:att2="att2">
<prefix3:info att1="att1" att2="att2" />
<p att1="att1" att2="att2" att3="att3">
<prefix3:status att1="att1" att2="att2" />
Hello World.
</p>
</div>
</body>
</tt>
最佳答案
我会试着用一个例子来回答你的问题:
input.xml
我们将在此示例中使用以下 XML 文档。 root
元素具有混合内容。混合内容意味着文本节点可以与元素混合出现。由于可以出现多个文本节点,因此一元属性并不合适。
<?xml version="1.0" encoding="UTF-8"?>
<root>
<root/>
Hello
<root/>
World
<root/>
</root>
package forum10940267;
import java.io.File;
import javax.xml.bind.*;
public class Demo {
public static void main(String[] args) throws Exception {
JAXBContext jc = JAXBContext.newInstance(Root.class);
Unmarshaller unmarshaller = jc.createUnmarshaller();
File xml = new File("src/forum10940267/input.xml");
Root root = (Root) unmarshaller.unmarshal(xml);
Marshaller marshaller = jc.createMarshaller();
marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
marshaller.marshal(root, System.out);
}
}
@XmlMixed
最常用于与另一个注释一起使用,以便生成
List
包含元素和文本内容。这样做的一个优点是保持顺序,以便文档可以往返。
package forum10940267;
import java.util.*;
import javax.xml.bind.annotation.*;
@XmlRootElement
public class Root {
private List<Object> mixedContent = new ArrayList<Object>();
@XmlElementRef(name="root", type=Root.class)
@XmlMixed
public List<Object> getMixedContent() {
return mixedContent;
}
public void setMixedContent(List<Object> mixedContent) {
this.mixedContent = mixedContent;
}
}
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<root>
<root/>
Hello
<root/>
World
<root/>
</root>
package forum10940267;
import java.util.*;
import javax.xml.bind.annotation.*;
@XmlRootElement
public class Root {
private List<Object> mixedContent = new ArrayList<Object>();
private List<String> text;
@XmlElementRef(name="root", type=Root.class)
public List<Object> getMixedContent() {
return mixedContent;
}
public void setMixedContent(List<Object> mixedContent) {
this.mixedContent = mixedContent;
}
@XmlMixed
public List<String> getText() {
return text;
}
public void setText(List<String> text) {
this.text = text;
}
}
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<root>
<root/>
<root/>
<root/>
Hello
World
</root>
@XmlMixed
注释被忽略。
package forum10940267;
import java.util.*;
import javax.xml.bind.annotation.*;
@XmlRootElement
public class Root {
private List<Object> mixedContent = new ArrayList<Object>();
private String text;
@XmlElementRef(name="root", type=Root.class)
public List<Object> getMixedContent() {
return mixedContent;
}
public void setMixedContent(List<Object> mixedContent) {
this.mixedContent = mixedContent;
}
@XmlMixed
public String getText() {
return text;
}
public void setText(String text) {
this.text = text;
}
}
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<root>
<root/>
<root/>
<root/>
</root>
关于JAXB-@XmlMixed 用于读取@XmlValue 和@XmlElement,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10940267/
我使用以下代码解析了一个 XML 文件并得到如下结果: url = htmlTreeParse("http://www.appannie.com/app/ios/candy-crush-saga/",
我想要这样的 XML: Foo 我可以通过一个看起来像这样的 JAXB 类成功地做到这一点: @XmlRootElement(name="simple") class Simple { @Xm
我有以下代码 @XmlAccessorType(XmlAccessType.FIELD) @XmlType(name = "udt_TextType", propOrder = { "value" }
目标是使用 JAXB 生成以下 XML string data binary data 是否有允许generic 的解决方法@XmlValue字段(我需要存储 byte[] 和 Str
跟进JAXB and Composite Pattern ,我设法映射: foo bar
@JsonValue javadoc 声明:“类似于 javax.xml.bind.annotation.XmlValue 的标记注释”。为什么相似,有什么不同? 我作为 JAXB 的新手问这个问题,
是否可以有一个用值 AND 元素呈现的 JAXB 元素? 我正在尝试渲染类似的内容: This is some text 它甚至知道可能不是有效的 XML,但不幸的是,我尝试呈现
我是 JAXB 的新手,在从 XML 到 Java 类实例的转换方面遇到了麻烦。 我有以下 XML: client Greeting 1000 Your Conne
假设我有以下内容: library(XML) my.xml Star Trek TNG 1.0 Doctor Who Babylo
我看到这里发布了一个类似的问题,但它并没有帮助我解决问题,所以我在这里发布我的问题,看看是否有人可以修改我的代码以使其工作。 问题:如何访问混合内容字符串值并将其保存在 setPhrase(Strin
我想表示 List> 的一个实例在 XML 中如下所示: value1 value2 2012-08-19T13:00:59.412-04:00 哪里key1和 key2
现在我们正在构建一个函数,使用 apache.poi 将大型 xlsx 文件(超过 200MB)导入到数据库,并遍历读取该数据的所有 xml 文件。 该功能已完成,但有一个问题: 当我在 xlsx 单
bean : @XmlRootElement(name = "integer") @XmlAccessorType(XmlAccessType.FIELD) public class IntegerW
我已经看过一些与此相关的讨论,但无法在以下场景中应用。我正在尝试使用 jaxb 解码 xml。以下是我所有类(class)的层次结构。 @XmlRootElement(name="entry")
我有一个问题,其中 xmlValue剥离 我需要保留的标签(或转换为我可以 strsplit 打开的其他字符。 这是一个例子: > f xpathSApply(f, "//div[@class=\"
是否可以在使用@XmlElementRef 注释的引用对象上使用@XmlValue 注释?目标是生成以下 XML 输出: Blah 给定以下示例 JAXBContex
您好,我正在解码一个 XML 文件,该文件的标签可以包含一个值或一个元素列表。我想知道解码这种 XML 的最佳方法是什么。示例: value1 value2 value3
我收到以下错误: If a class has @XmlElement property, it cannot have @XmlValue property 更新类: @XmlType(pr
我有下一个 html,我想解析它: My input: bla bla bla bla My output in java: jaxbContext = JAX
我正在尝试使用 JAXB 定义 XML 到 Java 对象的绑定(bind)。一切正常,除非我尝试生成 XML,如this: Get Price read-only 来自 类定义为
我是一名优秀的程序员,十分优秀!