从XPath获取元素名称,删除字符串连接

时间:2014-11-24 21:01:43

标签: c# xpath

说我有以下XPath

var xPath = "/TransactionValues/Entities/Entity/Phones/Phone";

是否有.NET C#类允许我解析此XPath字符串,并检索最后一个元素名称(“Phone”)?

我试过了:

var elementName = xPath.Remove(0, xPath.LastIndexOf("/") + 1);

但是如果xPath是这样的:

var xPath = "/Transactionvalues/Entities/Entity/Phones/Phone/( normalize-space( concat( '(', AreaCode, ')-', First3Phone, '-', Last4Phone ) ) )"

我将“{1}}作为”元素名称“

返回

我仍在尝试从此XPath获取“Phone”元素的原因是因为我正在尝试替换整个“Phone”元素,其中包含“AreaCode”,“First3Phone”和“Last4Phone”其中的元素,"( normalize-space( concat( '(', AreaCode, ')-', First3Phone, '-', Last4Phone ) ) )"将连接以返回表示电话号码的单个值,当XPath用于检索它所代表的值时。

( normalize-space...

我正在尝试替换整个Phone元素,但是我对Phone元素的唯一指针在它的末尾有这个额外的字符串concat和空间规范化函数,我正试图找到一种方法来检索“最后一个节点”或在这种情况下你实际称之为的任何东西。

1 个答案:

答案 0 :(得分:0)

我最终弄清楚实际问题是我们错过了<Phone>...</Phone>元素的内部元素。 xpath没有告诉我们在哪里放置我们的新值,它告诉我们它试图检索它们的位置,当这些元素不存在时,它抱怨它无法获得值。