我使用JAXB来创建XML消息.我需要创建的XML(为了简单起见):
<request>
<header/>
</request>
Run Code Online (Sandbox Code Playgroud)
我的代码看起来像这样:
import javax.xml.bind.annotation.*;
@XmlRootElement(name = "request")
public class Request {
private String header;
@XmlElement(required=true)
public String getHeader() {
return header;
}
public void setHeader(String header) {
this.header=header;
}
}
Run Code Online (Sandbox Code Playgroud)
问题:header元素未显示(标题为null).当标头设置为空字符串时,将显示以下内容:
<request>
<header></header>
</request>
Run Code Online (Sandbox Code Playgroud)
当我用作类型Object代替时String,结果更糟:
<request>
<header xsi:type="xs:string"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"></header>
</request>
Run Code Online (Sandbox Code Playgroud)
BTW:我正在使用此代码来创建XML字符串.
是否有可能得到一个空标签?
Tom*_*ine 11
在XML中,<header/>并且<header></header>是一回事.如果你真的想要前者,那就使用美化剂.javax.xml.transform.TransformerFactory.newTransformer()可能会为你做那件事.
String 对象的空标签本质上是空字符串。
如果您拨打以下电话,您将得到您正在寻找的东西:
request.setHeader("")
Run Code Online (Sandbox Code Playgroud)
我还应该注意到,在 XML 中,以下两个标头声明是相同的。这两个节点都没有子文本节点。它们本质上是相同的,并且将被所有 XML 解析器以相同的方式处理:
<header></header>
<header/>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
22087 次 |
| 最近记录: |