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节点同级的值。


使用equals方法检查对象是否相等(不是==
空格创建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);
    }
  }

07-24 09:45