基于元素读取XML节点?

发布于 2024-12-20 15:35:02 字数 770 浏览 0 评论 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”元素来读取?)我知道它的真正基础知识,但真的很困惑!

I have a sample xml

<UserSettings>
   <Source>settings/subscriptions</Source>
   <DestinationController>UserSettings</DestinationController>
   <DestinationAction>GetUserPreferenceSettings</DestinationAction>
</UserSettings>

The reading of the XML using tag name(UserSettings) is done as shown below.

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");

How do i read directly based on element "Source" ( example for m y above xml : read by passing settings/subscriptions to match the "Source" element ?) I know its real basics, but really confused!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

遥远的她 2024-12-27 15:35:02

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

XDocument doc = XDocument.Load(filename);
string value = doc.Root.Element("Source").Value;

Use Linq-XML (import System.Xml.Linq namespace).

XDocument doc = XDocument.Load(filename);
string value = doc.Root.Element("Source").Value;
|煩躁 2024-12-27 15:35:02

我会使用 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;

I'd use an XmlDocument instead, in combination with SelectSingleNode that accepts an XPath expression. The following is untested:

XmlDocument doc = new XmlDocument();
strFileName = [...]
doc.Load(strFileName);
sourcetext=doc.SelectSingleNode("/UserSettings/Source").InnerText;

Edit:

Here's a rough example on how to get the DestinationController based on Source.

XmlDocument doc = new XmlDocument();
strFileName = [...]
doc.Load(strFileName);
dctext=doc.SelectSingleNode("/UserSettings/[Source=\"Your desired source\"]/DestinationController").InnerText;
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文