【解決方法】C#で合計要素タグを取得するにはどうすればよいですか?


いくつかのタグが定義されたリスト文字列があります。各タグの合計要素数をカウントしたいと思います。

<L1 //2 element
 <L1 //1 element
  <H1 content> 
 > 
 <L1 //3 element
  <H2 content> 
  <P content>
  <L1 //1 element
   <H3 content>
  >
 >
>

これは私の切り取ったコードです C#

var str = "<L1\r\n <L1\r\n  <H1 content> \r\n > \r\n <L1\r\n  <H2 content> \r\n  <P content>\r\n  <L1\r\n   <H3 content>\r\n  >\r\n >\r\n>";
   var list = str.Split(new string[] { "\r\n" }, StringSplitOptions.None);
   var array_num = new List<string>();
   for (int i = 0; i < list.Length; i++)
   {
       if (list[i].Contains("<L1"))
       {
           int ElementNum = 0;
           for (int Lindex = i + 1; Lindex <= list.Length; Lindex++)
           {
               int end = list[Lindex].IndexOf(">");
               int start = list[Lindex].IndexOf("<");
               int def = list[i].IndexOf("<L1");
               if (end == def)
               {
                   break;
               }
               if (start == def + 2)
               {
                   ElementNum = ElementNum + 1;
               }
           }
           array_num.Add("index :" + i.ToString() + " have element: " + ElementNum.ToString());
       }
   }

しかし、実行して予期しない結果が得られると、タグの開始位置を直接取得できますが、結果の array_num get content 4,0,1,0 は間違っています。 正しい結果は 2,1,3,1 となるはずです。 それで、これについてのアイデアがあれば、皆さんに感謝します。

私が試したこと:

デバッグやアイデアの発見にもっと時間を費やすようにしています。 しかし、今に至るまでまだです。

解決策 1

これは、「

コメント

タイトルとURLをコピーしました