如何在添加节点时更新XPaths
本文关键字:更新 XPaths 节点 添加 | 更新日期: 2023-09-27 18:00:31
我正在编写一个处理html文档的C#窗体应用程序。我有一个对象列表,其中每个对象都有一个html节点的XPath。
添加html节点时,上述对象的XPath会发生更改。
我的问题是:在添加到文档之后,更新所有XPath值的最佳方式是什么?我目前正在使用Html敏捷包。
编辑
我在代码中尝试了以下操作,但不确定Html敏捷包是否具有此功能,或者我可能写错了代码:
- 在对HtmlDocument进行任何更改之前,请创建一个HtmlNode对象
- 插入新的HtmlNode
我正在使用以下代码创建HtmlNodes:
HtmlNode htmlNode1 = testingHtmlDocument.DocumentNode.SelectSingleNode("/html[1]/body[1]/div[1]");
- 是否应该在是否对HtmlDocument进行了添加?XPath能起作用吗方式
- 除了XPath之外,识别HtmlNode的最佳方式是什么,而不向HtmlNode添加任何附加数据
谢谢。
如果每次都需要更新XPaths,您可能会使用索引。如果你需要经常做出改变,也许这不是最好的方法。也许你可以在标签上添加一个ID?然后您可以使用:"//*[@id='0123-654-97854']"
- ID可以使用GUID生成
- 如果出于某种原因不想使用默认id属性,也可以使用自定义数据myapp id="…"
- 还可以指定标记的路径(不带索引),如/tag/Node/*[@data myapp id='…']