1

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

4

2 回答 2

4

看起来你可以使用JOOX 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 );

那应该让你开始。请注意,可能有更简单的方法可以将字符串转换为输入流。

于 2012-11-01T17:24:51.663 回答
-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");
于 2016-03-02T07:48:55.823 回答