SlopTonio
SlopTonio

Reputation: 1105

XML grab attribute from specific element node

If myVariable = "Element" then give me the attribute inside that element.

XML:

<Products>
<Equity>
    <servers>
       <serverEQ>server1</serverEQ>
       <serverEQ>server2</serverEQ>
       <serverEQ>server3</serverEQ>
    </servers>
<sitesE>
      <sitesEQ sitePathEQ="\Logs\W3SVC1"><nameEQ>SystemAdmin Site</nameEQ></sitesEQ>
      <sitesEQ sitePathEQ="\Logs\W3SVC3"><nameEQ>Direct Access Site</nameEQ></sitesEQ>
      <sitesEQ sitePathEQ="\Logs\W3SVC4"><nameEQ>Redirect Site</nameEQ></sitesEQ>
      <sitesEQ sitePathEQ="\Logs\W3SVC5"><nameEQ>Download Site</nameEQ></sitesEQ>
</sitesE>
</Equity>
.
.
.
</Products>

For example: If myVariable = "Direct Access Site" give me \Logs\W3SVC3 as my output.

Upvotes: 0

Views: 83

Answers (1)

Hossein Narimani Rad
Hossein Narimani Rad

Reputation: 32481

Not clear what exactly you want but this may helps:

var myVariable = "Direct Access Site";
XDocument doc = XDocument.Load(your file);
var result = doc.Descendants("sitesEQ")
               .Where(i => i.Element("nameEQ").Value == myVariable )
               .Select(i => i.Attribute("sitePathEQ").Value);

foreach (string item in result)
{
    Console.WriteLine(item);
}

Upvotes: 3

Related Questions