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

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

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

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

C#

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

Q&A

解決済

2回答

7094閲覧

XML Elementsの個数を取得したい

Qoo

総合スコア1249

XML

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

C#

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

0グッド

0クリップ

投稿2020/03/05 01:14

下記のようなXMLでデータのエレメントがいくつあるか取得したいです。
table.Elements("データ").Lengthも
table.Elements("データ").Count()も
使えないようなのですが、どうやって取得できるのでしょうか

XML

1<?xml version="1.0" encoding="UTF-8"?> 2<リスト> 3 <データ>aaa</データ> 4 <データ>bbb</データ> 5</リスト>

c#

1XDocument xml = XDocument.Load("@c/test.xml"); 2XElement table = xml.Element("リスト"); 3var cnt = 0; 4string[]infostr = new string[???]; 5foreach (var row in table.Elements("データ")) 6{ 7 infostr[cnt] = row.Value; 8 cnt += 1; 9}

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

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

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

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

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

guest

回答2

0

ベストアンサー

手元の環境では下記のコードで取得できました。

C#

1table.Elements("データ").Count()

LINQを使用するための using 宣言はありますか?

C#

1using System.Linq;

投稿2020/03/05 01:22

kawa0x0A

総合スコア271

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

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

Qoo

2020/03/05 01:54

ありがとうございます! using System.Xml.Linq;のみ定義していて using System.Linq;がなかったです! 助かりました!
TN8001

2020/03/05 02:04

string[] infostr = table.Elements("データ").Select(x => x.Value).ToArray(); 1行で済みますが、ほかにも何か処理があるのでしょうか。
guest

0

質問に書かれているコードで気になるのは以下の点です。

  1. プログラムの最初に、"using System.Xml.Linq;"という行(XDocumentクラスを使う際に必要なおまじない)を追加してください。
  2. "XDocument xml = XDocument.Load("@c/test.xml");"のXDocument.Loadの引数は、"@c/test.xml"ではなく、@"c:\test.xml"(@の後にダブルクオートで囲ったファイルパスを書く)のはず
  3. プログラムには実行した結果を出力するところ(print文で画面に出すとか、ファイルに書き出すとか)が無いので、実行しても成功したのかどうかが判らないのでは?

投稿2020/03/05 02:02

coco_bauer

総合スコア6915

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問