任何人都知道如何使用xpath获取节点的位置?
说我有以下xml:
<a>
<b>zyx</b>
<b>wvu</b>
<b>tsr</b>
<b>qpo</b>
</a>
Run Code Online (Sandbox Code Playgroud)
我可以使用以下xpath查询来选择第三个<b>节点(<b> tsr </ b>):
a/b[.='tsr']
Run Code Online (Sandbox Code Playgroud)
这一切都很好,但我想返回该节点的序号位置,如:
a/b[.='tsr']/position()
Run Code Online (Sandbox Code Playgroud)
(但更多工作!)
它甚至可能吗?
编辑:忘了提到我正在使用.net 2所以它是xpath 1.0!
更新:结束使用James Sulak的出色答案.对于那些感兴趣的人,我在C#中的实现:
int position = doc.SelectNodes("a/b[.='tsr']/preceding-sibling::b").Count + 1;
// Check the node actually exists
if (position > 1 || doc.SelectSingleNode("a/b[.='tsr']") != null)
{
Console.WriteLine("Found at position = {0}", position);
}
Run Code Online (Sandbox Code Playgroud) 因此,作为这个全球金融市场的直接结果,我明天将开始作为VB.net开发人员的新工作.到目前为止,我一直在开发C#(java,vb6,sql,tibco等等)
所以问题是这个,有什么需要注意的,有没有人对编写好的vb.net代码有什么好的建议?
(关于应对薪水/潜在客户的任何其他建议都会受欢迎,但不是必要的;-))
只是一个快速更新,公司看起来非常好,目前的代码库看起来质量非常高.我开始适应VB的做事方式(虽然不能阻止自己添加分号!).再次感谢大家的有益建议.
那么,我在使用自定义属性装饰的几个服务中获得了许多方法。
该属性用途ApplyDispatchBehavior从IOperationBehavior附加到方法和BeforeCall和AfterCall从方法IParameterInspector之前和服务方法被调用后做一些处理。
一切都很好,很好……当服务方法需要返回 http 状态和消息时,问题就来了。我能找到的唯一方法是让方法WebFaultException<T>传递我们的消息和适当的 http 状态。
问题AfterCall在于从未调用附加属性。
它的长短是:
WebFaultException<T>有没有办法仍然可以使用返回的消息调用我的属性?