1

您好,我遇到了以下问题。我想使用以下代码从以下代码中获取baseLocation(D:\NewSites\TEST ) 的值linq。我尝试了一些东西,但它似乎不起作用。任何想法如何做到这一点?提前致谢。托拉斯

我从这样的东西开始,但这返回了 null

XDocument document = XDocument.Load("C:\\web.config");
var dataList = from item in document.Descendants("configuration") select item;

这是我的 XML

<?xml version="1.0"?>
<configuration>
    <configSections>
    </configSections>
    <log4net>
    </log4net>
    <web>
        <website runtimeMode="Development" siteName="TEST" baseLocation="D:\NewSites\TEST"      sitePath="D:\NewSites\TEST\WebApps\Website" siteUri="http://test.co.uk" s    iteEmail="test@gmail.com" />
        <cms defaultTemplate="TEST\Content.aspx" templatesUrl="/Manager/Templates/">
        <publishingLocations>
            <publishingLocation name="TEST" uri="http://test.co.uk" path="WebApps\Website" />
        </publishingLocations>
        <redirectables />
        <searchEngineSiteMapNotifications />
        <siteMapXmlUrls />
        <pingServices />
        <reservedTemplates />
        <templateFilters />
        </cms>
    </web>
    <location path="Manager">
    </location>
    <connectionStrings>
    </connectionStrings>
    <system.web>
    </system.web>
</configuration>
4

3 回答 3

3

要使用 LINQ 和 C# 来提取属性,请使用类似这样的东西

XDocument document = Xdocument.Load("~/web.config");
var location = document.Descendants().Single(i=>i.Attribute("baseLocation") !=null)
               .Attribute("baseLocation").Value;
于 2013-04-10T08:49:41.773 回答
1
This will do the task:

XmlDocument xml = new XmlDocument();
xml.Load(@"location of xml/config");//  xml.Load(@""~/web.config");
XmlNode node = xml.DocumentElement.SelectSingleNode("//website");
Response.Write(node.Attributes["baseLocation"].Value);

让我知道您是否需要进一步的帮助,或者如果它有帮助请标记。

于 2013-04-10T08:51:57.317 回答
0

这个怎么样:

string baseLocation = document.Descendants("website").First().Attribute("baseLocation").Value;
于 2013-04-10T08:54:37.857 回答