Как прочитать повторяющиеся значения в каждом родительском элементе в XML C#?
- Привет!
Мой XML выглядит следующим образом (формат):
<!DOCTYPE repub SYSTEM "C:\repub\Repub_V1.dtd"> <?xml-stylesheet href="C:\repub\repub.xsl" type="text/xsl"?> <repub> <head> <title>Default Title</title> </head> <body> <sec> <title>TITLE</title> <break name="1-1"> <p>Text 1</p> <heading><page num ="1"/>Heading</heading> <subheading>Subheading</subheading> <fig><img src="images/img_1-1.jpg" alt=""/><fc>Image Caption</fc><cr>Image Credit</cr></fig> <fig><img src="images/img_1-2.jpg" alt=""/><fc>Image Caption</fc></fig> <fig><img src="images/img_1-3.jpg" alt=""/><fc>Image Caption</fc><cr>Image Credit</cr></fig> </break> <break name="2-1"> <p>Text 2</p> <heading><page num ="2"/>Heading 2</heading> <subheading>Subheading 2</subheading> <fig><img src="images/img_2-1.jpg" alt=""/><fc>Image Caption</fc><cr>Image Credit 2</cr></fig> <fig><img src="images/img_2-2.jpg" alt=""/></fig> <fig><img src="images/img_2-3.jpg" alt=""/><fc>Image Caption</fc><cr>Image Credit</cr></fig> </break> </sec> </body> </repub>
Я хочу получить значение имени разрыва в качестве выходного, так как этот разрыв имеет дубликат значения <cr>.
Я этого не понимаю.
Пожалуйста помочь.
С уважением
Аман
Что я уже пробовал:
// xdoc is the XDocument that contains the main XML with the mentioned structure var creditvalueduplicate = xdoc.Descendants("break").SelectMany(br => br.Descendants("cr").Select(p => new { crd = br.Value.ToString(), })) .GroupBy(x => new { x.crd }) .Select(grp => new { id = grp.Key, count = grp.Count() }).ToList().Where(x => x.count > 1) .ToList(); string s = string.Join("|", creditvalueduplicate.Select(x => "<cr>" + x.id +" - " + x.count + " times.")); if (!String.IsNullOrEmpty(s)) { AddMsg(s); }