我正在嘗試構建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提供程序。我不知道密鑰對機制。謝謝。 –