使用 XDocument 检索定义的字段
Retrieve a defined field with XDocument
我目前正在开发一个应用程序,我需要能够通过 XML Document
对其进行配置,我已经创建了 XML
文档,但我不知道如何正确配置其中的访问属性。这是一个简短的例子:
<MonitoringApplication>
<Configuration>
<WebService>
<HttpUser>User</HttpUser>
<HttpPassword>Password</HttpPassword>
</WebService>
<Application>
<Server>http://localhost</Server>
<ServerPort>9000</ServerPort>
</Application>
</Configuration>
</MonitoringApplication>
我希望能够仅通过指定服务器或 HttpUser 来检索服务器或 HttpUser,而不是整个结构。目前我正在尝试这个但它不起作用:
myXmlFile.Element("HttpUser").Value;
其中 myXmlFile
只是一个加载了 XDocument.Load()
的文档
又快又脏?
var user = (string)doc.Descendants("HttpUser").First();
为了回答您的评论,您的节点现在已命名空间,因此您需要考虑到这一点:
var ns = XNamespace.Get("urn:monitoring-schema");
var user = (string)doc.Descendants(ns + "HttpUser").First();
你可以做到这一点。
var user = doc.Descendants("HttpUser").First().Value;
工作Code
我目前正在开发一个应用程序,我需要能够通过 XML Document
对其进行配置,我已经创建了 XML
文档,但我不知道如何正确配置其中的访问属性。这是一个简短的例子:
<MonitoringApplication>
<Configuration>
<WebService>
<HttpUser>User</HttpUser>
<HttpPassword>Password</HttpPassword>
</WebService>
<Application>
<Server>http://localhost</Server>
<ServerPort>9000</ServerPort>
</Application>
</Configuration>
</MonitoringApplication>
我希望能够仅通过指定服务器或 HttpUser 来检索服务器或 HttpUser,而不是整个结构。目前我正在尝试这个但它不起作用:
myXmlFile.Element("HttpUser").Value;
其中 myXmlFile
只是一个加载了 XDocument.Load()
又快又脏?
var user = (string)doc.Descendants("HttpUser").First();
为了回答您的评论,您的节点现在已命名空间,因此您需要考虑到这一点:
var ns = XNamespace.Get("urn:monitoring-schema");
var user = (string)doc.Descendants(ns + "HttpUser").First();
你可以做到这一点。
var user = doc.Descendants("HttpUser").First().Value;
工作Code