这是我的xml文件的一部分:
<PipeSelectionOptions ID="9" ClassId="108" CoTo="ODRDaneOgolneCOOP" AlreadyDumped="False">
<DobierajKsztalki Caption="Dobieraj kształtki" Value="A">True</DobierajKsztalki>
<KorygujSrednice Caption="koryguj" Value="B">True</KorygujSrednice>
<PonownieDobierajSrednice Caption="P">True</PonownieDobierajSrednice>
<PrzechodzDoNastepcowRur Caption="P">True</PrzechodzDoNastepcowRur>
<SposobWymiarowaniaWentObjesc Caption="S" Value="A">N</SposobWymiarowaniaWentObjesc>
<ZachowajNarzuconeSrednice Caption="Z">True</ZachowajNarzuconeSrednice>
<NastepcyRur Count="2">
<ODRDaneOgolneNastepcyRurItem Index="0" ID="0" ClassId="0" AlreadyDumped="False">
<IsAutoMetkaNastepnika Caption="">False</IsAutoMetkaNastepnika>
<Metka Caption="" Value="R">2</Metka>
<MetkaNastepnika Caption="" Value="R">1</MetkaNastepnika>
</ODRDaneOgolneNastepcyRurItem>
<ODRDaneOgolneNastepcyRurItem Index="1" ID="3" ClassId="0" AlreadyDumped="False">
<IsAutoMetkaNastepnika Caption="">True</IsAutoMetkaNastepnika>
<Metka Caption="" Value="R">1</Metka>
<MetkaNastepnika Caption="" Value="(brak)">0</MetkaNastepnika>
</ODRDaneOgolneNastepcyRurItem>
</NastepcyRur>
我想通过代码访问 ODRDaneOgolneNastepcyRurItem :
foreach (XElement context in rootTemplate.XPathSelectElements("//PipeSelectionOptions"))
{
if (context.Attribute("CoTo").Value.ToString().Equals("ODRDaneOgolneCOOP"))
{
foreach (var NastepcyRur in context.Descendants())
{
if (NastepcyRur.Name.LocalName.Equals("ODRDaneOgolneNastepcyRurItem"))
{
sb.Append("<li><span>Rodzina rur:</span> " + NastepcyRur.Element("Metka").Attribute("Value").Value.ToString() + ";<span> Nastpca rur:</span> " + NastepcyRur.Element("MetkaNastepnika").Attribute("Value").Value.ToString() +"</li>");
}
}
}
}
..但是在 ZachowajNarzuconeSrednice 上的foreach(第二)完成了,看不到NastepcyRur和NastepcyRur的子代。为什么?
答案 0 :(得分:0)
var doc = new XmlDocument();
doc.Load(@"docs/example.xml");
var root = doc.DocumentElement;
var PipeSelectionOptions = root.SelectNodes("PipeSelectionOptions");
if (PipeSelectionOptions != null && root.Attributes["CoTo"].Value == "ODRDaneOgolneCOOP")
{
foreach (XmlNode pipeSelectionOption in root)
{
foreach (XmlNode NastepcyRur in pipeSelectionOption)
{
if (NastepcyRur.Name == "ODRDaneOgolneNastepcyRurItem")
{
foreach (XmlNode element in NastepcyRur)
{
if (element.Name != "IsAutoMetkaNastepnika")
Console.WriteLine(element.Name + ":" + element.InnerText);
}
}
}
}
}
its working. try to convert by yourself.