質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
XML

XMLは仕様の1つで、マークアップ言語群を構築するために使われています。

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Q&A

解決済

2回答

6322閲覧

C# xmlドキュメントから、特定のノードを取得する方法

GiveAHand

総合スコア286

XML

XMLは仕様の1つで、マークアップ言語群を構築するために使われています。

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

0グッド

1クリップ

投稿2017/02/26 22:00

C#のプログラムで、xmlドキュメントから、特定のノードを取り出す方法がわからなくて困っています。

xml

1<?xml version='1.0' encoding='utf-8' ?> 2<contents> 3 <head> 4 (headの内容) 5 </head> 6 <body> 7 (bodyの内容) 8 </body> 9</contents>

このようなxmlファイルから、<head></head>ノードを取り出すのに、このようなプログラムを書きました。

C#

1XmlDocument doc = new XmlDocument(); 2doc.LoadXml("<?xml version='1.0' encoding='utf-8' ?>" + 3 "<contents>" + 4 "<head>" + 5 "</head>" + 6 "<body>" + 7 "</body>" + 8 "</contents>"); 9 10XmlNode xmlHead; 11xmlHead = doc.SelectSingleNode("head");

しかしながら、このようにすると、xmlHeadはnullになってしまいます。

例えばこのケースのxmlドキュメントで、headノードを取得するには、SelectSingleNodeには、どんな引き数を指定すればいいのでしょう?

または、headノードを取得するのには、SelectSingleNode以外のいい方法はないものでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

C#

1var head = doc["contents"]["head"];

投稿2017/02/27 03:17

Zuishin

総合スコア28660

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

GiveAHand

2017/03/04 07:26

Zuishin様 なるほど。 これもうまくいきました! ありがとうございました~
guest

0

ベストアンサー

SelectSingleNode()に渡すものはxPathでなければなりません。
SelectSingleNode()以外にも、HTMLDOMでおなじみのGetElementById(), GetElementsByTagName()を使用することができます。こちらのほうが扱いやすいでしょう。GetElementsByTagName("head")[0]とすればheadノードを取得することができます。

投稿2017/02/26 22:28

編集2017/02/26 22:49
turbgraphics200

総合スコア4267

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

GiveAHand

2017/03/04 07:25

turbgraphics200様 あぁ、xPathなんですね~ それがわからなくて苦労してました。 GetElementsByTagName("head")[0]もうまくいきました! ありがとうございました~
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問