[英]Parse simple XML document from URL to String variable
我正在嘗試從http:// localhost:8000上的服務器讀取XML到字符串變量中。
XML文檔的布局非常簡單,當指向http:// localhost:8000時 ,將顯示以下內容:
<result>Hello World</result>
有沒有一種簡單的方法可以將其從localhost URL解析為String變量,例如,如果我要運行:
System.out.println(XMLVariable)
(其中XMLVariable是存儲內容的字符串變量),命令行的輸出將僅僅是“ Hello World”?
您需要將來自服務器的響應解析為某種XML數據結構。
我知道(在Java中)最簡單的方法是使用dom4j 。
可以這么簡單...
SAXReader reader = new SAXReader();
Document document = reader.read("http://localhost:8000/");
System.out.println(document.getText());
您可以使用StAX來解析響應:
private Optional<String> extractResultValue(String xml) throws XMLStreamException {
final XMLInputFactory factory = XMLInputFactory.newInstance();
final XMLEventReader reader = factory.createXMLEventReader(new StringReader(xml));
while (reader.hasNext()) {
XMLEvent event = reader.nextEvent();
if (event.isCharacters()) {
return Optional.ofNullable(event.asCharacters().getData());
}
}
return Optional.empty();
}
示例調用:
extractResultValue("<Your data from server>")
extractResultValue("<result>Hello World</result>") // Optional[Hello World]
extractResultValue("<result></result>") // Optional.empty
extractResultValue("<test>value</test>") // Optional[value]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.