这是xml文档的一部分:
<directory level="Beginner">
<cel row="0" column="0" visible="no">2</cel>
</directory>
如何将这3个值精确地放在一个字符串中?
每次我的字符串返回null时。Xpath表达式如下:
string xpath = "//directory[@level='" + directoryLevel+ "'] /cel[@row='" + amountOfRows + "' and @column='" + amountOfColumns+ "']";
错误必须在"and"(第二个属性)附近,因为如果我去掉这一部分,字符串就不再为空了。
如何将column的值精确地输入到字符串中?是什么导致了此错误?
谨致问候。
尝试将"and"替换为"][",如下所示:
string xpath = "//directory[@level='" + directoryLevel+ "']/cel[@row='" + amountOfRows + "'][@column='" + amountOfColumns+ "']";
它似乎是有效的xpath,所以我不确定问题出在哪里。我用xml和静态文本进行了一些测试,并能够构建以下运行良好的xpath语句:
//directory[@level='Beginner']/cel[(@row='0') and (@column='0')]
这个问题可能与您的变量有关,而不是与xpath有关吗?你绝对确定"amountOfRows"one_answers"amountOfColumns"具有你期望的值吗?
您的问题似乎在其他地方。我写了以下代码:
XmlDocument document = new XmlDocument();
document.LoadXml("<directory level="Beginner"><cel row="0" column="0" visible="no">2</cel></directory>");
string directoryLevel = "Beginner";
string amountOfRows = "0";
string amountOfColumns = "0";
string xpath = "//directory[@level='" + directoryLevel+ "']/cel[@row='" + amountOfRows + "' and @column='" + amountOfColumns+ "']";
XmlNode node = document.SelectSingleNode(xpath);
Console.WriteLine(node.OuterXml);
输出为:
<cel row="0" column="0" visible="no">2</cel>
结论:xpath表达式按预期工作。