如何使用jOOx解析Xml String
? parse方法接受String uri,但不接受Xml String
。
答案 0 :(得分:4)
您似乎可以使用JOOX
class和StringReader来完成此操作。例如:
String xml = "<?xml version='1.0'?><root><child attr='attr' /></root>";
StringReader sr = new StringReader( xml );
Match m = JOOX.builder().parse( sr );
请参阅JOOX使用的DocumentBuilder API。
您可能需要将StringReader
转换为InputSource
或等效,但这是一个相对简单的转换。从测试用例:
xmlExampleString = IOUtil.toString(JOOXTest.class.getResourceAsStream("/example.xml"));
xmlExampleDocument = builder.parse(new ByteArrayInputStream(xmlExampleString.getBytes()));
在这种情况下,你可以写:
String xml = "<?xml version='1.0'?><root><child attr='attr' /></root>";
StringReader sr = new StringReader( xml );
ByteArrayInputStream bais = new ByteArrayInputStream( new InputStreamReader( sr ) );
document = builder.parse( bais );
这应该让你开始。请注意,可能有更简单的方法将String转换为输入流。
答案 1 :(得分:-1)
最简单的形式就是这个
// Parse the document from string
Document document = $(new StringReader("<?xml version='1.0'?><root><child attr='attr' /></root>")).document();
然后与
进行匹配// Wrap the document with the jOOX API and find root element
Match m = $(document).find("root");