<Search_Results>
<Entity Record="1" ResultId="123">
<Information>
<AccountId>777</AccountId>
<Type>Person</Type>
</Information>
</Entity>
<Entity Record="2" ResultId="456">
<Information>
<AccountId>787</AccountId>
<Type>Chair</Type>
</Information>
</Entity>
</Search_Results>
我的XML看起来像这样。我在C#中使用XPATH并尝试动态检索必要的值。即我需要将XPath字符串保存在数据库中并检索它,以便代码是通用的。我尝试使用下面的代码,但我只能得到元素值。如何使用xPath或C#
中的任何其他内容动态获取xml元素值和属性值XmlDocument xdoc = new XmlDocument();
xdoc.Load(xmlfile);
string accountId = "Search_Results/Entity/Information/AccountId";
XmlNodeList innerTextLst = xdoc.SelectNodes(accountId);
foreach (XmlNode node in innerTextLst)
{
Console.WriteLine("AccountID : " + node.InnerText);
}
是否有其他方法可以通过从数据库传递配置来动态检索xml值。
答案 0 :(得分:0)
看起来您只是检索与搜索字符串匹配的第一个元素。怎么样?
string entities = "Search_Results/Entity";
XmlNodeList nodes = xdoc.SelectNodes(entities);
foreach (XmlNode node in nodes)
{
var accountID = node.SelectNodes("/Information/AccountID");
Console.WriteLine("AccountID : " + accountID[0].InnerText);
}