使用Joox解析Xml字符串

时间:2012-11-01 15:55:39

标签: java xml joox

如何使用jOOx解析Xml String? parse方法接受String uri,但不接受Xml String

2 个答案:

答案 0 :(得分:4)

您似乎可以使用JOOX classStringReader来完成此操作。例如:

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");