gpt4 book ai didi

java - 从 java DOM 获取文本值

转载 作者:行者123 更新时间:2023-12-02 07:04:49 26 4
gpt4 key购买 nike

public static void printNode(NodeList nodeList, Document d) 
{
for (int count = 0; count < nodeList.getLength(); count++)
{
Node tempNode = nodeList.item(count);
if (tempNode.getNodeType() == Node.ELEMENT_NODE)
{
if(tempNode.getChildNodes().getLength()==1)
{
if(tempNode.getNodeName()=="param-name")
{
tempNode = tempNode.getNextSibling();
System.out.println(tempNode.getTextContent());
}

}
else if (tempNode.getChildNodes().getLength() > 1)
{
printNode(tempNode.getChildNodes(),d);
}

else
{
print("ELSE")
}
}
}
}

我只想访问此 xml.file 中的标签并获取文本值

<context-param>
<param-name>A</param-name>
<param-value>604800000</param-value>
</context-param>

<context-param>
<param-name>B</param-name>
<param-value>50</param-value>
</context-param>

<context-param>
<param-name>C</param-name>
<param-value>1</param-value>
</context-param>

但这不起作用,输出是空白_空行_空白 。 。 。 。

那么,有人有想法吗?

非常感谢。

最佳答案

您似乎想要与 param-name 节点同级的值。

  1. 使用equals检查对象相等性的方法(不是 ==)
  2. 空格创建 text nodes

考虑使用XPath :

  public static void printNode(Document d) {
try {
NodeList values = (NodeList) XPathFactory.newInstance()
.newXPath()
.evaluate("//param-value/text()", d, XPathConstants.NODESET);

for (int i = 0; i < values.getLength(); i++) {
System.out.println(values.item(i).getTextContent());
}
} catch (XPathExpressionException e) {
throw new IllegalStateException(e);
}
}

关于java - 从 java DOM 获取文本值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16232216/

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