我正在尝试构建XPath查询生成器,以使泛型代码尽可能便携。C#XML - XPath查询生成器 - 动态创建查询
到目前为止,这是我想出了:
private static string XpathQueryBuilder (string NodeName,string AttributeName = null, string AttributeValue = null)
{
string XpathAttr = "";
if (AttributeName != null)
if (AttributeValue != null)
XpathAttr = "[@" + AttributeName + "='" + AttributeValue + "']";
else
XpathAttr = "[@" + AttributeName + "='*']";
return "//" + NodeName + XpathAttr;
}
我用这种方法看到的问题是,虽然如果我有一个以上的属性或节点更多的,我想寻找了,这个功能将不起作用。有没有办法动态创建一个XPath查询,可以在理论上接受任何数量的属性和/或节点。
我的优先级是有一个函数接受多个属性和属性值,因为这是比多个节点更可能的情况。
谢谢你的时间!
为什么不传递一个KeyValuePair <字符串,字符串>,传递一个列表并通过追加属性来遍历它? – james31rock
这将是一个很好的替代方案,而不是创建一个custome Linq提供程序。我不知道密钥对机制。谢谢。 –