我有一个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脚本但不确定如何应用它。
答案 0 :(得分:0)
查看此示例,了解如何从Java中运行XSLt:http://docs.oracle.com/javase/tutorial/jaxp/xslt/transformingXML.html
答案 1 :(得分:0)
我之前使用过jsoup用html来做这个,我相信它也适用于你的xml
这是一个例子
答案 2 :(得分:0)
答案 3 :(得分: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);
}
}