gpt4 book ai didi

java - 如何使用 stax/stax2 获取 XML 元素路径?

转载 作者:行者123 更新时间:2023-12-01 21:11:14 25 4
gpt4 key购买 nike

我想在使用 java StAX2 解析器解析 XML 时获取元素路径。如何获取当前元素路径的信息?

<root>
<a><b>x</b></a>
</root>

在此示例中,路径为 /root/a/b

最佳答案

保留一个堆栈。将元素名称插入 START_ELEMENT 并将其弹出到 END_ELEMENT。

这是一个简短的示例。它除了打印正在处理的元素的路径之外什么也不做。

public static void main(String[] args) throws IOException, XMLStreamException {
try (FileInputStream in = new FileInputStream("test.xml")) {

XMLInputFactory factory = XMLInputFactory.newFactory();
XMLStreamReader reader = factory.createXMLStreamReader(in);

LinkedList<String> path = new LinkedList<>();

int next;
while ((next = reader.next()) != XMLStreamConstants.END_DOCUMENT) {
switch (next) {
case XMLStreamConstants.START_ELEMENT:
// push the name of the current element onto the stack
path.addLast(reader.getLocalName());
// print the path with '/' delimiters
System.out.println("Reading /" + String.join("/", path));
break;

case XMLStreamConstants.END_ELEMENT:
// pop the name of the element being closed
path.removeLast();
break;
}
}
}
}

关于java - 如何使用 stax/stax2 获取 XML 元素路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41108090/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com