0

XSL Transform の関数を作成しようとしています。

基本的に、関数内には がありSystem.Xml.XPath.XPathNodeIterator、その反復子内の各ノードに適用されたときに XPath の値を取得したいと考えています。

この例では XPath ですconcat(name(.) , "_", string(.))が、実際には何でもかまいません。

これは XPathException をスローしています: 「式はノード セットに評価する必要があります。」どのような意味がありますか

これは有効な XPath ではなく、他の xml/xsl 関連の機能であると言われると思いますが、XSL では次のことができると考えてください。

<xsl:value-of select="concat(name(.) , "_", string(.))"/>

そして、それが私が求めているものです-しかし、関数内です。

私は C# を使用していますが、VB の回答は受け入れられます。

System.Xml.XPath.XPathNodeIterator Nodes = whatever;
string KeySelector="concat(name(.), '_', string(.))";
while (Nodes.MoveNext())
{
    System.Xml.XPath.XPathNavigator xpnValue = Nodes.Current.SelectSingleNode(KeySelector);
}
4

1 に答える 1

2

Evaluateではなく メソッドを使用する必要がありますSelectSingleNode。XPath の結果は ではなく、それぞれ .NETまたは C#XPathNavigatorの XPathです。StringSystem.Stringstring

于 2013-08-08T11:02:33.520 に答える