使用 SAXReader 从 xml 文件中读取元素
read elements from an xml file using SAXReader
我正在尝试使用 SAXReader 阅读以下 xml 内容
我必须读取节点名称 "SelogerListController"
的子元素。
节点名称 "SelogerListController"
包含 3 个子节点 .
我的主要目的是获取节点名称的第 3 个节点的子元素 "SelogerListControllerlike"
src="http://res/Favorite_Badge.png" ,src="http://res/sm_aries.png"
和
src="http://res/sm_cancer.png" and http://res/Favorite_Badge.png
...............
还有挖矿细节..
代码使用
SAXReader reader = new SAXReader();
Document document;
String xPath = "//XREClientView/XREClientView[5]";
String nodeName = null;
List<Element> childViews;
try {
document = reader.read("F://TestNewXMLAfter.xml");
List<Node> nodes = document.selectNodes(xPath);
for (Node node : nodes) {
System.out.println("name :: " + node.valueOf("@name"));
System.out.println(node.getPath());
nodeName = node.valueOf("@name");
if (nodeName.equals("SelogerListController")) {
childViews = ((Element) node).elements();
for (Element element : childViews) {
Element ele = element.element("XREClientImage");
}
break;
}
}
} catch (DocumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
您在 post 中显示的 XPath 是:
//XREClientView/XREClientView[5]
这表示找到一个 XREClientView
,其中至少包含五个名为 XREClientView
的子节点,而 return 第五个子节点。 XPath 应该开始
//XREClientView[@name='SelogerListController']/...
您可以在哪里计算出 ...
的替代品。还不完全清楚您可以使用哪些独特的属性值来查找您感兴趣的节点。
我正在尝试使用 SAXReader 阅读以下 xml 内容
我必须读取节点名称 "SelogerListController"
的子元素。
节点名称 "SelogerListController"
包含 3 个子节点 .
我的主要目的是获取节点名称的第 3 个节点的子元素 "SelogerListControllerlike"
src="http://res/Favorite_Badge.png" ,src="http://res/sm_aries.png"
和
src="http://res/sm_cancer.png" and http://res/Favorite_Badge.png
...............
还有挖矿细节..
代码使用
SAXReader reader = new SAXReader();
Document document;
String xPath = "//XREClientView/XREClientView[5]";
String nodeName = null;
List<Element> childViews;
try {
document = reader.read("F://TestNewXMLAfter.xml");
List<Node> nodes = document.selectNodes(xPath);
for (Node node : nodes) {
System.out.println("name :: " + node.valueOf("@name"));
System.out.println(node.getPath());
nodeName = node.valueOf("@name");
if (nodeName.equals("SelogerListController")) {
childViews = ((Element) node).elements();
for (Element element : childViews) {
Element ele = element.element("XREClientImage");
}
break;
}
}
} catch (DocumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
您在 post 中显示的 XPath 是:
//XREClientView/XREClientView[5]
这表示找到一个 XREClientView
,其中至少包含五个名为 XREClientView
的子节点,而 return 第五个子节点。 XPath 应该开始
//XREClientView[@name='SelogerListController']/...
您可以在哪里计算出 ...
的替代品。还不完全清楚您可以使用哪些独特的属性值来查找您感兴趣的节点。