当前位置: 首页 > 面试题库 >

从org.w3c.dom.Node获取Xpath

杜翰林
2023-03-14
问题内容

我可以从org.w3c.dom.Node获取完整的xpath吗?

说当前节点指向xml文档中间的某个位置。我想提取该元素的xpath。

我正在寻找的输出xpath//parent/child1/chiild2/child3/node。节点xpath的父级。只需忽略具有表达式并指向同一节点的xpath。


问题答案:

没有获取XPath的通用方法,主要是因为没有一个通用XPath可以标识文档中的特定节点。在某些架构中,节点将由属性唯一标识(id并且name可能是最常见的属性。)在其他架构中,每个元素的名称(即,标记)足以唯一地标识节点。在少数(不太可能,但可能)的情况下,没有一个唯一的名称或属性可以将您带到特定节点,因此您需要使用基数(获取第m个孩子的第n个孩子)。
..)。

编辑
:在大多数情况下,为给定节点创建依赖架构的功能来组装XPath并不困难。例如,假设您有一个文档,其中每个节点均由id属性唯一标识,并且您没有使用名称空间。然后(
我认为 )下面的伪Java将可以基于这些属性返回XPath。( 警告:我尚未对此进行测试。

String getXPath(Node node)
{
    Node parent = node.getParent();
    if (parent == null) {
        return "/" + node.getTagName();
    }
    return getXPath(parent) + "/" + "[@id='" + node.getAttribute("id") + "']";
}


 类似资料:
  • 问题内容: 我正在编写一个JSP / Servlet,并且试图获取URI的锚点部分,例如: 如何从我的请求中获得分数?显然行不通吗? 任何帮助都将受到欢迎。 问题答案: 这是不可能的,因为客户端不会将“锚定部分”发送到服务器 例如,这是Chrome提交后生成的确切请求(使用Wireshark记录): 看,没有#foobar。因此,服务器应用程序无法读取它。 您可以做一些JavaScript魔术,将

  • 问题内容: 我正在编写一个JSP / Servlet,并且尝试获取URI的锚点部分,例如: 如何从我的请求中获得分数?显然行不通吗? 任何帮助都将受到欢迎。 问题答案: 这是不可能的,因为客户端不会将“锚定部分”发送到服务器 例如,这是Chrome提交后生成的确切请求(使用Wireshark记录): 看,没有#foobar。因此,服务器应用程序无法读取它。 您可以做一些JavaScript魔术,将

  • 问题内容: HttpClient httpclient = new DefaultHttpClient(); HttpPost httppost = new HttpPost(“http://my.server:8080/android/service.php"); 生成一个json字符串。我该如何从我的手机上获取?顺便说一句; 我已经将该库排除在外了,我可以在其中使用任何方法吗? 有更好的方法,

  • 问题内容: 我正在解决有关作为服务器响应的JSONObject的问题。 正如您在响应中看到的那样,我正在解析JSONObject并创建syncresponse,synckey作为 JSON对象 createdtrs,modtrs,deletedtrs作为 JSONArray 。我想从Deletedtrs访问JSONObject,以便可以将它们分开并使用这些值。即我想提取公司编号,用户名,日期等。

  • 问题内容: 我正在尝试完成一项看似简单的任务,但该任务已经变成了数小时的冒险:从入门。 这是我的代码: 一个 答案 表明,我可能要做的就是更改。我试过了 这使退出工作(因为我现在返回的是标量而不是rowdata)(我需要保留GetData())。它还不能解决该问题,因为insertID变量仍设置为1。 我试图创建第二个在和设置属性为适配器“标”,但它仍然无法与变量中获得的值为1。 生成的插入命令是

  • 我目前开始编写一个可以加载不同游戏的棋盘游戏游乐场。我将这些游戏存储在名为config.txt的文件中,但我无法访问它。首先,我从我最喜欢的文件方法开始: 但当我建造的时候。jar文件,它停止工作。因为显而易见的原因。所以我四处看看,发现了关于使用getResourceAsStream(String s)方法的建议。因此,我将代码更改为以下方式: 但在这里我被卡住了。无论我如何调整文件地址(尝试了