gpt4 book ai didi

JAVA - 读取XML节点的属性

转载 作者:行者123 更新时间:2023-12-01 19:32:15 25 4
gpt4 key购买 nike

我正在尝试使用 XPath 库读取 XML 文件的行。到目前为止,我已经能够读取正在处理的文档的每个节点,但我不知道如何访问该节点的特定属性。

为了更好地理解,我将给出一个示例以及我迄今为止开发的代码:

<string key1="/path" key2="title" key3="English" value="Spanish"/>
<string key1="/path" key2="title" key3="English" value="Spanish"/>
<string key1="/path" key2="title" key3="English" value="Spanish"/>
<string key1="/path" key2="title" key3="English" value="Spanish"/>

我想要做的是获取 value 属性的值,在示例中所有节点都包含文本“Spanish”。

通过以下代码,我读取了每一行,但我不知道如何使用 Java XPath 库访问属性的值:

public static void main(String[] args) throws ParserConfigurationException, SAXException, IOException, XPathExpressionException {

String xPathExpression = "//string";

Document documento = null;
NodeList nodos = null;

try {
// Carga del documento xml
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
documento = builder.parse(new File("./src/TestResults/xmlFile.lang"));
} catch (Exception e) {
System.out.println(e.getMessage());
}

try {
// Preparación de xpath
XPath xpath = XPathFactory.newInstance().newXPath();

// Consultas
nodos = (NodeList) xpath.evaluate(xPathExpression, documento, XPathConstants.NODESET);
} catch (Exception e) {
System.out.println(e.getMessage());
}

for (int i=0;i<nodos.getLength();i++){
System.out.println("********* ITER " + i + " *********");
System.out.println(nodos.item(i).getNodeName());
System.out.println(nodos.item(i).getNodeValue());
System.out.println(nodos.item(i).getAttributes());
System.out.println("**************************");
}

}

最佳答案

有点不清楚您想要实现什么,但如果您想要“value”属性的值,XPath 表达式可以是:

//string/@value

其中“@”是属性轴的简写。也可以写成

//string/attribute::value

关于JAVA - 读取XML节点的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59283694/

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