【发布时间】:2021-10-18 08:39:57
【问题描述】:
我遇到了一些障碍。 我的目标是过滤掉除数字之外的所有内容。
这是xml文件
<?xml version="1.0" encoding="utf-8" ?>
<orders>
<order>
<stuff>"Some random information and # 123456"</stuff>
</order>
</orders>
这是我不完整的代码。我不知道如何找到它,也不知道如何进行我想要的更改。
public static void main(String argv[]) {
try {
// Lesen der Datei
File inputFile = new File("C:\\filepath...\\asdf.xml");
DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder docBuilder = docFactory.newDocumentBuilder();
Document doc = docBuilder.parse(inputFile);
// I don't know where to go from there
NodeList filter = doc.getChildNodes();
TransformerFactory transformerFactory = TransformerFactory.newInstance();
Transformer transformer = transformerFactory.newTransformer();
DOMSource source = new DOMSource(doc);
StreamResult consoleResult = new StreamResult(System.out);
transformer.transform(source, consoleResult);
} catch (Exception e) {
e.printStackTrace();
}
}
【问题讨论】:
-
查看 Xpath,stackoverflow.com/questions/2811001/… 你可以通过类似 /orders/order/stuff 的方式获取东西的价值
-
当您使用 XSLT
Transformer时,为什么不编写一个 XSLT 样式表来完成这项工作。不确定您是否想要一个具有先前结构但将<stuff>"Some random information and # 123456"</stuff>转换为<stuff>123456</stuff>的新 XML 文档,或者只是一个数字结果,但 XSLT 两者都可以。 -
那么我将如何使用 XSLT 来做这件事呢?我对这一切都有些陌生。