私は単純な xml を持っています。そこから XmlDocument を作成し、Xpath を使用してノードをフェッチしました。このノードをコードの他の部分に渡す必要があります。そこでは、XmlNode オブジェクトでさらに xpath 関数を使用して他のサブノードを取得できます。しかし、以下のコードでは
string xmlString = "<catalog><music><cds><cd><title>First Title</title><author>Author 1</author></cd><cd><title>Second Title</title><author>Author 2</author></cd></cds></music></catalog>";
XmlDocument xmlDocument = new XmlDocument();
xmlDocument.LoadXml(xmlString);
XmlNode musicNode = xmlDocument.SelectSingleNode("/catalog/music");
XmlNode cdsNode = musicNode.SelectSingleNode("/cds");
musicNode の名前を出力すると、「music」が表示されるので、「music」ノードがあると想定します。そのため、「cds」XmlNode を取得すると仮定して、音楽ノードに xpath 式「/cds」を再度適用しましたが、コード内の cdsNode は未定義の値を返しますが、そうすると
XmlNode cdsNode = musicNode.SelectSingleNode("/catalog/music");
「音楽」ノードである cdsNode の有効な値を再び取得しています。musicNode は「音楽」XmlNode ではなく XmlDocument を表していると思いますか??? 私は何か不足していますか?