我有一个示例xml
<UserSettings>
<Source>settings/subscriptions</Source>
<DestinationController>UserSettings</DestinationController>
<DestinationAction>GetUserPreferenceSettings</DestinationAction>
</UserSettings>
使用标记名称(UserSettings)读取XML,如下所示。
XmlDataDocument xmlDoc = new XmlDataDocument();
strFileName = System.Configuration.ConfigurationManager.AppSettings["UrlRoutingPath"].ToString();
strFileLocation = HttpContext.Current.Server.MapPath("~/" + strFileName);
xmlDoc.Load(strFileLocation);
XmlNodeList xmlNode = xmlDoc.GetElementsByTagName("UserSettings");
我如何根据元素“Source”直接阅读(m y以上的例子:通过传递设置/订阅来读取以匹配“Source”元素?)我知道它真正的基础知识,但真的很困惑!
答案 0 :(得分:1)
使用Linq-XML
(导入System.Xml.Linq名称空间)。
XDocument doc = XDocument.Load(filename);
string value = doc.Root.Element("Source").Value;
答案 1 :(得分:0)
我使用XmlDocument代替SelectSingleNode接受XPath表达式。以下是未经测试的:
XmlDocument doc = new XmlDocument();
strFileName = [...]
doc.Load(strFileName);
sourcetext=doc.SelectSingleNode("/UserSettings/Source").InnerText;
编辑:
这是一个关于如何基于Source获取DestinationController的粗略示例。
XmlDocument doc = new XmlDocument();
strFileName = [...]
doc.Load(strFileName);
dctext=doc.SelectSingleNode("/UserSettings/[Source=\"Your desired source\"]/DestinationController").InnerText;