【问题标题】:Node position in xml - Javaxml 中的节点位置 - Java
【发布时间】:2012-10-26 23:13:43
【问题描述】:

我想准备一个函数,它会给我节点在 xml 中的位置。
例如:

int NodePosition = doc.getDocumentElement().getChildNodes().item(t).getNodeName().Position()

以后我想做一些这样的(当然这是例子):

System.out.println(Node.row[NodePosition].tostring()); 

有可能做这样的事情吗?或者,也许你知道一些函数可以做出这样的事情。

例如,当我走得更深时,获得位置就会出现问题。因为m = 7

doc.getDocumentElement().getChildNodes().item(t).getChildNodes().item(m)

当我尝试做这个时(但我必须保存位置):

System.out.println(doc.getDocumentElement().getChildNodes().item(7).getNodeName());

我得到错误

java.lang.NullPointerException

【问题讨论】:

  • 请定义一个节点位置是什么(用一个例子),以及你要创建的函数应该作为参数并返回,因为它根本不清楚。
  • 我使用循环“for”检查节点,您可以看到 item(t) 以循环中的“i”为例。我想获得这个节点的位置并写入一些 int。也许您知道如何检查节点的位置并将其保存为整数?稍后用于显示数据。
  • 因此该位置是i 的值。向我们展示您的尝试。
  • 我知道位置是“i”,但问题是当我获取深度数据时 doc.getDocumentElement().getChildNodes().item(t).getChildNodes().item(m) 我的程序可以上传所有带有不同参数的xml文档,看起来很简单。
  • 好的。然后再次回答我的第一个问题。函数的参数是什么?它应该返回什么。举例说明。越来越不清楚了。

标签: java xml


【解决方案1】:

在我看来,您似乎是在重新发明轮子 - 您正在尝试构建自己的 XPath 版本 - 请参阅:http://www.ibm.com/developerworks/library/x-javaxpathapi/index.html

How to select specified node within Xpath node sets by index

【讨论】:

  • 我明白这一点,但我永远不知道我的 xml 树的外观。例如,我的程序将加载所有具有不同参数和节点的 xml。你可以给我你的 xml,我的程序会加载它,但即使我不知道你的 xml 结构。
  • 不用担心 - XPath 接受一个字符串作为参数,它看起来非常类似于“文件路径”,此外它还允许您指定数字索引,例如“//books/authors/author/ book[3]”,表示书籍中,子节点作者,子节点作者,第三本书。或者,如果您不知道节点名称并做各种花哨的事情,您可以使用 *。此外,它是一个标准,适用于所有主要的编程语言——它并不特定于 Java
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-10-28
  • 1970-01-01
  • 2021-09-04
  • 1970-01-01
  • 1970-01-01
  • 2012-05-21
  • 1970-01-01
相关资源
最近更新 更多