0

我想选择带有索引 # 的 SelectSingleNode,因为我的路径相同的元素很少。

xDoc.DocumentElement.SelectSingleNode(xPath).InnerText = xValue.ToString();

当 xPath 是以下字符串时:

"/Parameter [@tag='tool_od']/Value/ValueSeries/ Value[Index=1] /value"

或“/Parameter [@tag='tool_od']/Value/ValueSeries/ Value[1] /value”

或“/Parameter [@tag='tool_od']/Value/ValueSeries/ Value[@Index=1] /value”

所有这些选项都给我一个错误:“对象引用未设置为对象的实例。”

这是 xml 的一部分:我希望能够使用 selectsinglenode 访问每个孩子。

<ValueSeries>
            <Value>
              <value>25</value>
            </Value>
            <Value>
              <value>999012.0</value>
            </Value>
            <Value>
              <value>999012.0</value>
            </Value>
</ValueSeries>

如果我将删除索引部分,路径将正常工作,但它只会访问第一个元素而不是其他元素。

4

2 回答 2

0

我的错误是由于使用索引“0”,第一个索引是 1。

于 2012-10-22T10:56:07.410 回答
0

如果无法看到您的输入 xml,就很难确定您的问题到底是什么。

请注意,您不需要使用xDoc.DocumentElement,因为您的 xpath 无论如何都是指根节点(/),所以您可以只使用xDoc.SelectSingleNode(....

如果您正在寻找“ValueSeries”的第一个“Value”元素,那么您的第二个 xpath 看起来是正确的(值是否包含值?),但这取决于您的 xml 的样子。

“对象引用”错误是由于 SelectSingleNode 返回 null(因为找不到您的 xpath),并且您正在尝试设置属性 InnerText。

于 2012-10-22T09:45:32.307 回答