この KML を読み込んでいます: http://www.mcallen.net/Files/docs/traffic/bike/kml/McBikeRoutes.kml
XDocument に変換し、デバッガーで XDocument を見ると、ファイルの内容が正しく取り込まれているように見えます。
ただし、子孫にアクセスしようとすると、何をしても空になります。
var xDoc = XDocument.Load("Assets/McBikeRoutes.kml");
var d = xDoc.Descendants(); // <-- Empty result
上記のコードでは、McBikeRoutes.kml は上記のリンクされたファイルの正確なコピーです。手動でプロジェクトに追加したので、オンラインではなく内部で取得しています。
また、xDoc がファイルをロードしていることを確認できます。デバッガーでファイルを観察しているかのように、完全な KML ドキュメント コンテンツが含まれていることがわかります。
ただし、どのように子孫にアクセスしようとしても、結果は常に空です。
ドキュメントにデフォルトの名前空間と他のすべての名前空間を含めようとしましたが、何をしても結果はありません。
最後に xDoc.Descendants() を試してすべてを取得しましたが、これも空になりました!
xDoc.Root.Descendants() と xDoc.Document.Descendants()、xDoc.Elements()、xDoc.Root.Elements()、xDoc.Document.Elements() を試しましたが、EVERTHING は空の結果を返します。ただし、XDocument には明らかに情報があります。
奇妙なことに、私がそうすると:
((XElement)xDoc.FirstNode)
最初の子孫 XElement を取得します。しかし、私がこれを行うと:
((XElement)xDoc.FirstNode).Descendants()
まだ結果が得られません (Elements() を試したときも同じです)。
ここで私が間違っていることを誰か知っていますか?ドキュメントがKMLだからですか?