0

我有一个示例 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”直接阅读(我上面的 xml 示例:通过传递设置/订阅以匹配“Source”元素来阅读?)我知道它的真正基础,但真的很困惑!

4

2 回答 2

1

使用Linq-XML(导入 System.Xml.Linq 命名空间)。

XDocument doc = XDocument.Load(filename);
string value = doc.Root.Element("Source").Value;
于 2011-12-10T07:09:49.990 回答
0

我将改用XmlDocument,并结合接受XPath表达式的SelectSingleNode 。以下内容未经测试:

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;
于 2011-12-10T06:59:10.030 回答