我使用XStream序列化我的domainObjects.
我想在生成的xml文件中添加某种版本控制信息,以防我的域模型发生变化.
有没有办法使用xstream?
我希望在root标签(<object-stream>)中更喜欢名为"version"的参数,但其他任何东西都会很好.
提前致谢.
我正在使用xStream来操作XML.一切都好.要放置XML存档和其他东西.但是,我有一个问题:
示例:我的xml包含一个标记,在这个标记中,我有一些名为的标记<comment>.看一个示例代码:
<comments>
<comment>
<id>1</id>
<desc>A comment</desc>
</comment>
<comment>
<id>2</id>
<desc>Another comment</desc>
</comment>
<comment>
<id>3</id>
<desc>Another one comment</desc>
</comment>
</comments>
Run Code Online (Sandbox Code Playgroud)
并且渐进地.我可以在标签内做500个标签.这些评论属于评论类型.
如何使用xStream序列化以将所有这些标记放入类中?我不怎么在课堂上让它接收各种物品.
显然,我将使用数组或其他方法.但我不知道怎么做到这一点.
默认情况下>,XStream不必要地逃脱," 等等.
有没有一种方法来禁用此(只有逃避<,&)?
我想用XStream将java类序列化为XML.
我需要使用一个下划线(canal_operateur)生成一个XML元素,但XStream在xml元素名称中添加了第二个下划线.
那么如何只保留一个下划线?
使用此类的默认配置:
public class Document implements Serializable {
private String typedoc;
private Fichier fichier;
private String canalOperateur;
//xstream.aliasField("canal_operateur", Document.class, "canalOperateur");
/*
** setter and getter
*/
}
Run Code Online (Sandbox Code Playgroud)
XStream将下划线加倍:
<document>
<canal__operateur>canal</canal__operateur>
<commentaire>commentaire</commentaire>
<metadonnees/>
</document>
Run Code Online (Sandbox Code Playgroud) 我正在使用XStream将XML转换为对象.我正在转换大型xml.我在下面遇到了两个陈述.
XStream xstream = new XStream(new DomDriver());
XStream xstream = new XStream(new StaxDriver());
Run Code Online (Sandbox Code Playgroud)
由于我使用大型xml进行转换,哪一个效果更好?为什么?
请帮忙.
我正在使用XStream,我有一个XML示例:
<person>
<firstname>Joe</firstname>
<lastname>Walnes</lastname>
<phone value="1234-456" />
<fax value="9999-999" />
</person>
Run Code Online (Sandbox Code Playgroud)
我想把它映射到课堂上
public class Person {
private String firstname;
private String lastname;
private String phone;
private String fax;
}
Run Code Online (Sandbox Code Playgroud)
因此,我们的想法是将嵌套元素的属性映射到当前对象.我试图找到任何即用型转换器但没有成功.我相信通过实施新的转换器是可能的,但也许有人已经这样做了.或者有一个我没有找到的解决方案.
更新:
我想要实现的想法是省略不必要的创建和映射实体.我根本不需要电话和传真实体,我只需要在我的模型中使用它们的属性.我试图解析的XML模式对我来说是第三方,我无法改变它.
在单元测试项目中,我需要一些帮助来弄清楚如何在封送的XML中隐藏2个不必要的父节点?任何人都可以帮我弄清楚如何做到这一点?
我的编组输出如下所示:
<suite>
<suiteName>Suite 1</suiteName>
<sauceURL>http://username-string:access-key-string@ondemand.saucelabs.com:80/wd/hub</sauceURL>
<tests>
<test>
<rowArgs>
<arg>
<enabled type="java.lang.Boolean">true</enabled>
</arg>
<arg>
<testname type="java.lang.String">Test 1</testname>
</arg>
<arg>
<environment type="java.lang.String">portal1</environment>
</arg>
<arg>
<testlocale type="java.lang.String">Grid</testlocale>
</arg>
<arg>
<browser type="java.lang.String">Firefox</browser>
</arg>
<arg>
<url type="java.lang.String">http://google.com</url>
</arg>
</rowArgs>
</test>
...
Run Code Online (Sandbox Code Playgroud)
但我想隐藏不必要的"rowArgs"和"arg"标记,以便其余节点立即位于测试节点下.我怎样才能做到这一点?
你可以在这里看到我的代码,如果它可以帮助你帮助我.我怀疑我需要写自己的变压器?我会同时处理那个实验.
我正在尝试使用XStream.我已将XStream可执行Jar文件添加到我的项目中.执行以下命令:
XStream xstream = new XStream();
Run Code Online (Sandbox Code Playgroud)
导致以下异常:
线程"main"中的异常java.lang.NoClassDefFoundError:org/xmlpull/v1/XmlPullParserException
at com.thoughtworks.xstream.XStream.<init>(XStream.java:350)
at xstream_test.XmlTrasformer.objectToXml(XmlTrasformer.java:56)
at xstream_test.XmlTrasformer.main(XmlTrasformer.java:31)
Run Code Online (Sandbox Code Playgroud)
引起:java.lang.ClassNotFoundException:org.xmlpull.v1.XmlPullParserException
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
... 3 more
Run Code Online (Sandbox Code Playgroud)
我有什么想法可能做错了吗?谢谢.
我有一个XML类似于以下的结构.我有转换器来写每一个对象A,B和C.是否可以XStream检查XML层次结构中是否存在节点?即在下面的情况下,我想B在我写之前存在节点C.
<A>
<B>
<C>
</C>
</B>
</A>
Run Code Online (Sandbox Code Playgroud) xstream ×10
java ×9
xml ×5
javascript ×1
marshalling ×1
node.js ×1
parsing ×1
rxjs ×1
testng ×1
underline ×1
xml-parsing ×1