簡體   English   中英

將簡單的XML文檔從URL解析為String變量

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM