Программа ниже выдаст
Среднее время отклика сервера является критическим, поскольку его значение 282 & gt; 0 мс
[Сведения о пороге: критически важны, если значение & gt; 0, Предупреждение, если значение = 0, Очистить, если значение & lt; 0]
package test;
import java.io.StringReader;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import org.apache.xerces.dom.DocumentImpl;
import org.cyberneko.html.parsers.DOMFragmentParser;
import org.w3c.dom.Document;
import org.w3c.dom.DocumentFragment;
import org.xml.sax.InputSource;
public class TestHTMLDOMFragment {
private static final String PARSE_TEXT = "<div>Average Response Time server is critical because its value 282 > 0 ms. <br>[Threshold Details : Critical if value > 0, Warning if value = 0, Clear if value < 0]</div>";
public static void main(String[] argv) throws Exception {
DOMFragmentParser parser = new DOMFragmentParser();
// output the elements in lowercase, nekohtml doesn't do this by default
parser.setProperty("http://cyberneko.org/html/properties/names/elems","lower");
// if this is set to true (the default, you dont need to specifiy this)
// then neko html wont and an html,head and body tags to the response.
parser.setFeature("http://cyberneko.org/html/features/document-fragment",true);
Document document = new DocumentImpl();
DocumentFragment fragment = document.createDocumentFragment();
// parse the document into a fragment
parser.parse(new InputSource(new StringReader(PARSE_TEXT)), fragment);
TransformerFactory transformerFactory = TransformerFactory.newInstance();
Transformer transformer = transformerFactory.newTransformer();
// don't display the namespace declaration
transformer.setOutputProperty("omit-xml-declaration", "yes");
DOMSource source = new DOMSource(fragment);
StreamResult result = new StreamResult(System.out);
transformer.transform(source, result);
}
}
Комментарии в коде выше показывают настройки парсера, которые я использовал.
Я также использовал org.cyberneko.html.parsers.DOMFragmentParser, поскольку вы можете также выполнять синтаксический анализ текста, который является просто фрагментом HTML
Я использую nekohtml 1.9.14
Если вы используете maven, вот раздел зависимостей pom.xml ...
<dependencies>
<dependency>
<groupId>net.sourceforge.nekohtml</groupId>
<artifactId>nekohtml</artifactId>
<version>1.9.14</version>
<type>jar</type>
</dependency>
</dependencies>