如何在添加节点时更新XPaths

本文关键字:更新 XPaths 节点 添加 | 更新日期: 2023-09-27 18:00:31

我正在编写一个处理html文档的C#窗体应用程序。我有一个对象列表,其中每个对象都有一个html节点的XPath。

添加html节点时,上述对象的XPath会发生更改。

我的问题是:在添加到文档之后,更新所有XPath值的最佳方式是什么?我目前正在使用Html敏捷包。

编辑

我在代码中尝试了以下操作,但不确定Html敏捷包是否具有此功能,或者我可能写错了代码:

  1. 在对HtmlDocument进行任何更改之前,请创建一个HtmlNode对象
  2. 插入新的HtmlNode

我正在使用以下代码创建HtmlNodes:

HtmlNode htmlNode1 = testingHtmlDocument.DocumentNode.SelectSingleNode("/html[1]/body[1]/div[1]");
  1. 是否应该在是否对HtmlDocument进行了添加?XPath能起作用吗方式
  2. 除了XPath之外,识别HtmlNode的最佳方式是什么,而不向HtmlNode添加任何附加数据

谢谢。

如何在添加节点时更新XPaths

如果每次都需要更新XPaths,您可能会使用索引。如果你需要经常做出改变,也许这不是最好的方法。也许你可以在标签上添加一个ID?然后您可以使用:"//*[@id='0123-654-97854']"

  • ID可以使用GUID生成
  • 如果出于某种原因不想使用默认id属性,也可以使用自定义数据myapp id="…"
  • 还可以指定标记的路径(不带索引),如/tag/Node/*[@data myapp id='…']