簡體   English   中英

使用c#計算XML標簽中“元素”的數量

[英]count number of “elements” in an XML tag using c#

我正在使用C#讀取XML文件並計算XML標記中有多少個“元素”,例如這樣。

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

在Languages標簽中有3個“ elements”:English,Deutsche和Francais。 我需要知道如何計算它們並返回多少元素的值。 標簽的內容可能會隨時間變化,因為XML文件必須擴展/容納其他語言(需要時)。

如果這不可能,請針對該問題提出建議的解決方法。 謝謝。

編輯:我還沒有拿出代碼來讀取XML文件,但是我也對學習如何感興趣。

編輯2: 對問題的修訂

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();

首先,一種“理想”的解決方案:不要在單個標簽中放置多個信息。 而是將每種語言放在自己的標簽中,如下所示:

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

如果不可能,則使用多種語言檢索標簽的內容,使用allLanguages.Split(',', ' ')拆分,然后通過檢查結果數組的長度來獲取計數。

好的,但是要清楚一點,XML元素具有非常特殊的含義。 實際上,您擁有的整個代碼塊都是XML元素。

XElement xElm = new XElement("Languages", "English, Deutsche, Francais");
string[] elements = xElm.Value.Split(",".ToCharArray(), StringSplitOptions.RemoveEmptyEntries);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM