C# 如何在选定节点的子节点中获取某些字段。在C中

C# 如何在选定节点的子节点中获取某些字段。在C中,c#,xml,xmlnode,C#,Xml,Xmlnode,我以前知道怎么做,但现在我老了,老了。我有一个xml文件: <?xml version="1.0" encoding="UTF-8"?> <Army> <ArmyName>The Army of Northern Virginia</ArmyName> <Commander> <CommanderName>The Emperor Napoleon</CommanderName>

我以前知道怎么做,但现在我老了,老了。我有一个xml文件:

<?xml version="1.0" encoding="UTF-8"?>
<Army>
    <ArmyName>The Army of Northern Virginia</ArmyName>
     <Commander> 
         <CommanderName>The Emperor Napoleon</CommanderName>
         <CommanderLeadership>94</CommanderLeadership> 
            <Division>
                <DivisionCommanderName>Major General William T. Sherman</DivisionCommanderName>
                <DivisionCommanderLeadership>78</DivisionCommanderLeadership>
                <Unit>
                    <UnitName>Chasseurs à Cheval Garde</UnitName>
                    <UnitIcon>Cavalry.png</UnitIcon>
                    <UnitType>Cavalry</UnitType>
                    <UnitKStrength>3</UnitKStrength>
                    <UnitStrength>456</UnitStrength>
                    <UnitQuality>94</UnitQuality>
                    <UnitMorale>72</UnitMorale>
                    <UnitLeadership>74</UnitLeadership>
                    <UnitAmmunition>99</UnitAmmunition>
                </Unit>
                <Unit>
                    <UnitName>Battery B 4th US Artillery</UnitName>
                    <UnitIcon>Artillery.png</UnitIcon>
                    <UnitType>Artillery</UnitType>
                    <UnitKStrength>3</UnitKStrength>
                    <UnitStrength>4456</UnitStrength>
                    <UnitQuality>88</UnitQuality>
                    <UnitMorale>65</UnitMorale>
                    <UnitLeadership>82</UnitLeadership>
                    <UnitAmmunition>25</UnitAmmunition>
                </Unit>
            </Division>
            <Division>
                <DivisionCommanderName>Spoons Butler</DivisionCommanderName>
                <DivisionCommanderLeadership>18</DivisionCommanderLeadership>
                <Unit>
                    <UnitName>2nd Wisconsin Infantry</UnitName>
                    <UnitIcon>Infantry.png</UnitIcon>
                    <UnitType>Infantry</UnitType>
                    <UnitKStrength>3</UnitKStrength>
                    <UnitStrength>1456</UnitStrength>
                    <UnitQuality>92</UnitQuality>
                    <UnitMorale>48</UnitMorale>
                    <UnitLeadership>87</UnitLeadership>
                    <UnitAmmunition>25</UnitAmmunition>
                </Unit>
                <Unit>
                    <UnitName>3rd Brigade Supply Train</UnitName>
                    <UnitIcon>Supplies.png</UnitIcon>
                    <UnitType>Supply</UnitType>
                    <UnitKStrength>3</UnitKStrength>
                    <UnitStrength>4256</UnitStrength>
                    <UnitQuality>32</UnitQuality>
                    <UnitMorale>36</UnitMorale>
                    <UnitLeadership>25</UnitLeadership>
                    <UnitAmmunition>3</UnitAmmunition>
                </Unit>
            </Division>
            <Division>
                <DivisionCommanderName>Advanced Guard</DivisionCommanderName>
                <DivisionCommanderLeadership>86</DivisionCommanderLeadership>
                <Unit>
                    <UnitName>27ème Régiment d'lnfanterie Légère</UnitName>
                    <UnitIcon>LightInfantry.png</UnitIcon>
                    <UnitType>Light Infantry</UnitType>
                    <UnitKStrength>2</UnitKStrength>
                    <UnitStrength>1256</UnitStrength>
                    <UnitQuality>82</UnitQuality>
                    <UnitMorale>56</UnitMorale>
                    <UnitLeadership>75</UnitLeadership>
                    <UnitAmmunition>23</UnitAmmunition>
                </Unit>
            </Division>
            <Division>
                <DivisionCommanderName>General of Division Olivier Rivaud de la Raffinière</DivisionCommanderName>
                <DivisionCommanderLeadership>76</DivisionCommanderLeadership>
                <Unit>
                    <UnitName>8ème Régiment d'lnfanterie de Ligne</UnitName>
                    <UnitIcon>Infantry.png</UnitIcon>
                    <UnitType>Infantry</UnitType>
                    <UnitKStrength>2</UnitKStrength>
                    <UnitStrength>1256</UnitStrength>
                    <UnitQuality>94</UnitQuality>
                    <UnitMorale>78</UnitMorale>
                    <UnitLeadership>72</UnitLeadership>
                    <UnitAmmunition>23</UnitAmmunition>
                </Unit>
                <Unit>
                    <UnitName>45ème Régiment d'lnfanterie de Ligne</UnitName>
                    <UnitIcon>Infantry.png</UnitIcon>
                    <UnitType>Infantry</UnitType>
                    <UnitKStrength>2</UnitKStrength>
                    <UnitStrength>1256</UnitStrength>
                    <UnitQuality>94</UnitQuality>
                    <UnitMorale>78</UnitMorale>
                    <UnitLeadership>72</UnitLeadership>
                    <UnitAmmunition>23</UnitAmmunition>
                </Unit>
                <Unit>
                    <UnitName>54ème Régiment d'lnfanterie de Ligne</UnitName>
                    <UnitIcon>Infantry.png</UnitIcon>
                    <UnitType>Infantry</UnitType>
                    <UnitKStrength>2</UnitKStrength>
                    <UnitStrength>1256</UnitStrength>
                    <UnitQuality>94</UnitQuality>
                    <UnitMorale>78</UnitMorale>
                    <UnitLeadership>72</UnitLeadership>
                    <UnitAmmunition>23</UnitAmmunition>
                </Unit>
                <Unit>
                    <UnitName>2ème Régiment de Hussards</UnitName>
                    <UnitIcon>LightCavalry.png</UnitIcon>
                    <UnitType>Light Cavalry</UnitType>
                    <UnitKStrength>2</UnitKStrength>
                    <UnitStrength>1256</UnitStrength>
                    <UnitQuality>94</UnitQuality>
                    <UnitMorale>78</UnitMorale>
                    <UnitLeadership>72</UnitLeadership>
                    <UnitAmmunition>99</UnitAmmunition>
                </Unit>
            </Division>
    </Commander>
</Army>
如何返回所选节点的子节点的UnitName列表

谢谢!请随便嘲笑我的秃头。

你应该和我一起去

var unitNames = selectedNode.SelectNodes(".//UnitName");
foreach(XmlElement unitName in unitNames)
{
    Console.WriteLine(unitName.InnerText);
}
试试这个:

XmlDocument doc = new XmlDocument();
doc.Load("sample.xml");

var divisions = doc.SelectNodes("//Division");
var firstDivision = divisions[0]; //your "SelectedItem"

XmlNodeList unitNames = firstDivision.SelectNodes("./Unit/UnitName");
foreach(XmlNode unitName in unitNames)
{
    Console.WriteLine(unitName.InnerText);
}

selectedNode.SelectNodes//UnitName;?它在unitName对象不包含“InnterText”定义时引发错误。。。我使用以下命令运行它:XmlNodeList nodes=MainWindow.SelectedNode.SelectNodes//UnitName;节点{MessageBox.Show中的foreach XmlNode unitName将删除以下单位:+unitName.InnerText;}
XmlDocument doc = new XmlDocument();
doc.Load("sample.xml");

var divisions = doc.SelectNodes("//Division");
var firstDivision = divisions[0]; //your "SelectedItem"

XmlNodeList unitNames = firstDivision.SelectNodes("./Unit/UnitName");
foreach(XmlNode unitName in unitNames)
{
    Console.WriteLine(unitName.InnerText);
}