Я пытаюсь выяснить, как сделать оператор select, используя linq для xml. Я хотел бы вернуть ServerTypes, если DeploymentType соответствует определенному значению (Enterprise9999).Linq to xml Выбрать оператор
XML:
<Deployments>
<Deployment>
<DeploymentType>Enterprise9999</EnterpriseDeploymentType>
<Servers>
<DeploymentServer>
<ServerType>WindowsServer</ServerType>
</DeploymentServer>
<DeploymentServer>
<ServerType>LinuxServer</ServerType>
</DeploymentServer>
</Servers>
</Deployment>
<Deployment></Deployment>
<Deployment></Deployment>
</Deployments>
Вот то, что я до сих пор в коде. Я уверен, что я ошибаюсь в этом:
XDocument xmlDoc = XDocument.Load(@xmlFile);
IEnumerable<XElement> xlDeployments = from depRows in xmlDoc.Descendants("Deployments")
select depRows;
var deploy = xlDeployments.Descendants("Deployment");
foreach (var dep in deploy)
{
if (dep.Element("DeploymentType").ToString() == "Enterprise9999")
{
MessageBox.Show(dep.Elements("ServerType").ToString());
}
}
Является ли пространство имен необходимым для оператора выбора?
Ваш XML не очень хорошо образован – DGibbs
частности, закрывающий тег этого тега не соответствует открывающему тегу: Enterprise9999 EnterpriseDeploymentType> –