【发布时间】:2015-03-30 05:21:36
【问题描述】:
我目前正在处理一个 txt-to-xml 项目。基本上我所做的是为某些内容创建不同的 XmlElements。 我启动并运行了一个 DTD,现在我正在创建一个默认 xml,只是为了确保创建的每个 xml 都是有效的 xml(对于给定的 DTD)。 我主要为每个元素创建新的类,它没有#PCDATA 结构,到目前为止它工作得很好。 现在我正在努力解决一个问题: 我的 DTD 中有以下内容:
<!ELEMENT REACTION(#PCDATA | ACTOR*)>
我在 Text 中寻找的内容类似于:
教授。 X 鼓掌!
我想将它提取到我的 XML 中:
<REACTION>
<ACTOR>Prof. X</ACTOR> clapped!
</REACTION>
所以我基本上想要的是 ReactionClass 中的 String-Attribute,它作为 XML-Element 开发,但包含一个 Actor-Attribute + 文本的其余部分。我想到了类似的东西:
String m_sText;
String m_sActor;
public ReactionClass(){
this.Actor = "Prof. X";
this.sText = this.m_sActor + " clapped!";
}
@XmlElement(name = "TEXT")
public String getM_sText(){ return this.m_sText; }
@XmlElement(name = "ACTOR")
public String getM_sActor(){ return this.m_sActor; }
对于所有其他节点,例如 RootNode,我创建了一个 RootNodeClass,它包含不同的属性,例如 m_nLocation、m_nTime、m_nYear,它们被声明为 XML-Elements,因此 JAXB-Marshaller 只是在这些基础上构建 XML元素:
<ROOT>
<TIME>09:00</TIME>
<LOCATION>New York</TIME>
<YEAR>1992</YEAR>
</ROOT>
我想对 REACTION-Node 做同样的事情(如上所述),但是当创建一个新的类 REACTION 时,我得到了一些东西。喜欢:
<REACTION>
<TEXT>Prof. X clapped!</TEXT>
<ACTOR>Prof. X</ACTOR>
</REACTION>
我如何将它们放入一个元素中但仍保留上面的标签? 如果有人知道如何管理它,我将非常感激!
谢谢麦克斯
【问题讨论】: