如何在Java DOM解析器使用属性名称和标记名,来获取标签的价值
问题描述:
这是XML如何在Java DOM解析器使用属性名称和标记名,来获取标签的价值
<a>
<b name="dataSource">
<property name="driverClass">oracle</property>
<property name="jdbcUrl">jdb:</property>
</b>
</a>
如何使用属性名称
为获得在标记的值例如:预言
<property name="driverClass">oracle</property>
使用的标记名属性和属性值driverClass
我想甲骨文
答
试试这个:
XML输入:
< nodename attribute="value" > Something </ nodename>
Java代码:
NodesList subs = child.item(j).getChildNodes();
System.out.println(subs.item(0).getTextContent()); // >> Something
答
您可以使用XPath查询,东西像/a/b/property[@name='driverClass']/text()
这将返回t的property
节点,其具有的属性name
等于driverClass
的EXT值,这是一个子b
,这是a
例如儿童...
try {
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
Document doc = dbf.newDocumentBuilder().parse(JavaApplication244.class.getResourceAsStream("/Test.xml"));
XPathFactory xf = XPathFactory.newInstance();
XPath xPath = xf.newXPath();
XPathExpression expression = xPath.compile("https://*.com/a/b/property[@name='driverClass']/text()");
String value = expression.evaluate(doc);
System.out.println(value);
} catch (ParserConfigurationException | SAXException | IOException | XPathExpressionException exp) {
exp.printStackTrace();
}
其输出oracle
查看w3schools, xPath和How XPath Works了解更多详情
+0
的孩子非常感谢它的工作:) – codeCrack
+0
@ user2741894很高兴它可以帮助 – MadProgrammer
您是否想要所有具有attribute或ju的节点st属性'节点? “属性”节点是否需要是'a'的孩子的'b'的孩子? – MadProgrammer
我只需要属性节点值使用属性值 – codeCrack
是的属性节点需要b的孩子,这是一个 – codeCrack