gpt4 book ai didi

.net - 如何使用XPath伪造不存在的XML节点?

转载 作者:行者123 更新时间:2023-12-03 17:05:37 25 4
gpt4 key购买 nike

我知道这是一个奇怪的问题!

该要求是由于现有代码期望XPath查询的结果是单个节点。不幸的是,由于我们无法控制的因素,我们目前无法更改代码(除非不存在解决方法,这可能意味着我们将不得不推迟发布)。

就我而言,XPath当前返回一个整数值(计数):

count(/someNode/node)


该代码使用 XPathNavigator.SelectSingleNode()方法,该方法当然会失败,因为结果不是节点。

相反,我需要XPath返回一个节点,尽管它是假的。可能吗?请注意,因为使用了.NET,所以XPath必须为1.0(而不是2.0)。

附言而且,是的,我们将研究尽快重构有问题的代码!

最佳答案

如果您需要XPath表达式返回一个文本内容等于count(/someNode/node)值的节点,则可以这样做:

"(//text() | //*/@*)[. = count(/someNode/node)]"


这可能会非常低效,具体取决于您的输入文档是什么样的;如果输入文档中没有包含正确编号的文本节点,则很可能会失败。但是,在某些情况下,它可以解决问题,并可以帮助您避免延迟发布。

例如,如果您输入的XML很小,并且 count(...)的可能值范围受到限制,并且如果您能够对XML进行更改,那么您可以在输入XML中包括额外的文本或属性节点,以确保所需的号码可用。

关于.net - 如何使用XPath伪造不存在的XML节点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12677000/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com