使用存储在数据库

时间:2018-02-16 03:46:53

标签: c# xml xpath xmldocument xmlreader

<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值。

1 个答案:

答案 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);
}