0

我有一个 Java 类,它返回特定系统的状态,然后返回一个新的 ResponseEntity 并从中生成一个 XML 文件。我想从文件中剥离 XML 标记并只显示内容。

爪哇:

 @RequestMapping(method = RequestMethod.GET) 
    public ResponseEntity<StatusData> getStatus() throws IOException {
        StatusData status = new StatusData();   
        status.setIsDbUp(statusService.isDbUp());
        status.setIsAppUp(statusService.isAppUp());
        return new ResponseEntity<StatusData>(status, HttpStatus.OK);
    }

生成的 XML:

   <com.ck.app.StatusData>
       <isDbUp>DB: UP</isDbUp>
       <isAppUp>APP: UP</isAppUp>
   </com.ck.app.StatusData>

我写了一个 XSL 脚本,但不确定如何应用它。

4

4 回答 4

0

查看有关如何在 Java 中运行 XSLt 的示例:http: //docs.oracle.com/javase/tutorial/jaxp/xslt/transformingXML.html

于 2013-08-30T14:50:37.427 回答
0

您可以遍历 DOM 树节点并打印文本节点。

public static void main(String[] args) throws IOException, ParseException, JAXBException, URISyntaxException, NoSuchFieldException, SecurityException, IllegalArgumentException, IllegalAccessException, SQLException, NoSuchMethodException, SAXException, ParserConfigurationException {
    DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
    Document doc = builder.parse(Main.class.getResourceAsStream("/file.xml"));

    visit(doc);
}

public static void visit(Node node) {
    NodeList nl = node.getChildNodes();

    for (int i = 0; i < nl.getLength(); i++) {

        Node child = nl.item(i);
        if (child.getNodeType() == Node.TEXT_NODE)
            System.out.println(child.getTextContent());

        visit(child);
    }
}
于 2013-08-30T14:54:11.323 回答
0

我之前使用过jsoup来处理html,我相信它也适用于你的xml

http://jsoup.org

这是一个例子

jsoup - 去除所有格式和链接标签,只保留文本

于 2013-08-30T14:51:54.100 回答
0

查找剥离 xml 标记并仅显示内容: http ://www.w3schools.com/xsl/tryxslt.asp?xmlfile=cdcatalog&xsltfile=cdcatalog

于 2013-08-30T14:52:55.203 回答