通用XML实用程序——在java jdom中
请建议我如何在java中执行以下实用程序 希望创建泛型java类以使用JDOM生成XML。 类是否能够在运行时生成任何xml结构取决于参数的传递方式? 例如,在我的模块中,我需要创建一个XML,它有3个不同的子元素,其中一个根元素是通用XML实用程序——在java jdom中,java,xml,jdom,xml-generation,Java,Xml,Jdom,Xml Generation,请建议我如何在java中执行以下实用程序 希望创建泛型java类以使用JDOM生成XML。 类是否能够在运行时生成任何xml结构取决于参数的传递方式? 例如,在我的模块中,我需要创建一个XML,它有3个不同的子元素,其中一个根元素是 <Child> <A> This is normal text </A> <B> This is normal text </B> <C> This is norm
<Child>
<A> This is normal text </A>
<B> This is normal text </B>
<C> This is normal text </C>
</Child>
但在另一个模块中,我们需要另一个XML文件,该文件包含10个子文件和一些属性
所以我们决定使用通用XML实用程序,它在运行时在特定文件夹中生成XML文件。
实用程序将帮助我们避免应用程序中的冗余代码,并且易于管理。。。
请帮助你的朋友
谢谢
角斗士您可以通过XStream这样做:
public static String getXMLFromObject(Object toBeConverted, String classNameAlias, Map<String, String> fieldAlias,
List<String> fieldsToBeOmitted) {
StringBuilder objectAsXML = new StringBuilder();
if(toBeConverted != null){
XStream xStream = new XStream(new DomDriver());
if(classNameAlias != null && classNameAlias != "" && classNameAlias.trim().length() > 0) {
xStream.alias(classNameAlias, toBeConverted.getClass());
}
if(fieldAlias != null && !fieldAlias.isEmpty()){
for (Entry<String, String> entry : fieldAlias.entrySet()) {
xStream.aliasField(entry.getKey(), toBeConverted.getClass(), entry.getValue());
}
}
if(fieldsToBeOmitted != null && fieldsToBeOmitted.size() > 0){
for (String fieldToBeOmitted : fieldsToBeOmitted) {
xStream.omitField(toBeConverted.getClass(), fieldToBeOmitted);
}
}
objectAsXML.append(xStream.toXML(toBeConverted));
}
return objectAsXML.toString();
}
在这种情况下,您不需要在上述方法中发送最后三个参数,只需从objectToBeConverted中获取它,而且它更有意义,因为系统中的每个对象都可以声明自己是否可以转换为XML。此util方法是否接收对象,然后将其转换为XML?是的。。。我们可以传递对象,也可以只传递字符串格式的数据或java bean对象……如果您可以使用xstream,我可以向您展示一个可以使用的util方法,请告诉我。我阅读了有关xstream的。。。。请让我知道方法…非常感谢。。。
public interface XMLConvertable {
public String getClassAlias();
public List<String> getFieldToBeOmitted();
public Map<String, String> getFieldAliases();
}