0

XML ファイルを読み取り、XML タグに含まれる「要素」の数を数えるのに C# を使用しています。たとえば、次のように...

<Languages>English, Deutsche, Francais</Languages>

Languages タグ内には、English、Deutsche、および Francais の 3 つの「要素」があります。それらを数えて、要素の数の値を返す方法を知る必要があります。XML ファイルは (必要に応じて) 追加の言語を拡張/収容する必要があるため、タグの内容は時間の経過とともに変化する可能性があります。

これが不可能な場合は、問題の回避策を提案してください。ありがとうございました。

編集: XML ファイルを読み取るためのコードは思いつきませんでしたが、方法を学ぶことにも興味があります。

EDIT 2:質問に加えられた改訂

4

3 に答える 3

5
string xml = @"<Languages>English, Deutsche, Francais</Languages>";
var doc = XDocument.Parse(xml);

string languages = doc.Elements("Languages").FirstOrDefault().Value;
int count = languages.Split(',').Count();

コンマ区切りの文字列を XML 要素から単純に取り出そうとしているわけではないことを示す編集に応じて、最初に XML を保存するアプローチは正しくありません。別のポスターがコメントしたように、次のようにする必要があります。

<Languages>
    <Language>English</Language>
    <Language>Deutsche</Language>
    <Language>Francais</Language>
</Languages>

次に、言語の数を取得するには:

string xml = @"<Languages>
                   <Language>English</Language>
                   <Language>Deutsche</Language> 
                   <Language>Francais</Language>
               </Languages>";

var doc = XDocument.Parse(xml);

int count = doc.Element("Languages").Elements().Count();
于 2012-12-18T01:46:33.287 に答える
3

まず、「理想的な」解決策は、1 つのタグに複数の情報を入れないことです。むしろ、次のように、各言語を独自のタグに入れます。

<Languages>
    <Language>English</Language>
    <Language>Deutsche</Language>
    <Language>Francais</Language>
</Languages>

これが不可能な場合は、タグのコンテンツを複数の言語で取得し、 を使用して分割しallLanguages.Split(',', ' ')、結果の配列の長さを確認してカウントを取得します。

于 2012-12-18T01:49:43.720 に答える
0

わかりましたが、明確にするために、XML 要素には非常に具体的な意味があります。実際、コードブロック全体が XML 要素です。

XElement xElm = new XElement("Languages", "English, Deutsche, Francais");
string[] elements = xElm.Value.Split(",".ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
于 2012-12-18T01:58:49.010 に答える