使用 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