这是xml文档的一部分:
<directory level="Beginner">
<cel row="0" column="0" visible="no">2</cel>
</directory>
如何将这3个值准确地放在字符串中?
每次我的字符串返回null。 Xpath xpression如下:
string xpath = "//directory[@level='" + directoryLevel+ "'] /cel[@row='" + amountOfRows + "' and @column='" + amountOfColumns+ "']";
错误必须在“和”(第二个属性)附近,因为如果我将该部分留出,则该字符串不再为空。
我怎样才能将列的值输入到我的字符串中以及导致此错误的原因?
最诚挚的问候。
答案 0 :(得分:0)
尝试将“和”替换为“] [”如此:
string xpath = "//directory[@level='" + directoryLevel+ "']/cel[@row='" + amountOfRows + "'][@column='" + amountOfColumns+ "']";
答案 1 :(得分:0)
它似乎是有效的xpath所以我不确定是什么问题。我使用xml和静态文本测试了一下,并且能够构建以下xpath语句,该语句工作正常:
//directory[@level='Beginner']/cel[(@row='0') and (@column='0')]
问题可能与你的变量有关,而不是xpath?您是否绝对确定“amountOfRows”和“amountOfColumns”具有您期望的值?
答案 2 :(得分:0)
看起来您的问题出在其他地方。我写了以下代码:
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表达式按预期工作。