Ниже приведен мой XML-ввод:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE repub SYSTEM "C:\repub\Repub_V1.dtd">
<?xml-stylesheet href="C:\repub\repub.xsl" type="text/xsl"?>
<repub>
<head>
<title>xxx</title>
</head>
<body>
<sec name="1">
<title>First Title</title>
<break name="1-1"/>
<pps>This is Sparta</pps>
<h1>
<page num="1"/>First Heading
</h1>
<bl>This is another text</bl>
<fig>
<img src="images/img_1-1.jpg" alt=""/>
<fc>This is a caption</fc>
</fig>
<p>
<b>This</b> again is<b> a paragraph</b>
</p>
</sec>
<sec name="2">
<title>Second Title</title>
<break name="1-1"/>
<h1>
<page num="1"/>Second Heading
</h1>
<bl>This is another text</bl>
<fig>
<img src="images/img_2-1.jpg" alt=""/>
<fc>This is a caption</fc>
<cr>This is a credit</cr>
</fig>
<p>This is a paragraph</p>
</sec>
<sec name="3">
<title>First Title</title>
<break name="3-1"/>
<h1>
<page num="1"/>Third Heading
</h1>
<bl>This is another text</bl>
<fig>
<img src="images/img_3-1.jpg" alt=""/>
<fc>This is a caption</fc>
</fig>
<p>This is a paragraph</p>
</sec>
<sec name="4">
<title>Third Title</title>
<break name="4-1"/>
<h1>
<page num="1"/>Fourth Heading
</h1>
<bl>This is another text</bl>
<p>This is a paragraph</p>
<fig>
<img src="images/img_4-1.jpg" alt=""/>
<fc>This is a caption</fc>
<cr>This is a credit</cr>
</fig>
<break name="5-1"/>
<h1>
<page num="1"/>Fifth Heading
</h1>
<bl>This is another text</bl>
<fig>
<img src="images/img_5-1.jpg" alt=""/>
<fc>This is a caption</fc>
<cr>This is a credit</cr>
</fig>
<p>This is a paragraph</p>
</sec>
</body>
</repub>
Я хочу показать теги <break>
, которые имеют повторяющиеся значения. Я добился этого и использую следующий метод:
var breaknameduplicate = xdoc.Descendants("sec").Descendants("break")
.GroupBy(n => n.Attribute("name").Value.Trim()).ToList()
.Where(g => g.Count() > 1)
.Select(g => new { Name = g.Key, count = g.Count() })
.ToList();
string s = string.Join(Environment.NewLine, breaknameduplicate.Select(x => "<break name=\"" + x.Name + "\"/> - " + x.count + " times."));
if (!String.IsNullOrEmpty(s))
{
MessageBox.Show(s);
}
Теперь я хочу показать <sec>
также для <break>
.
<break name="1-1"> - 2 times in sections 1 and 2.
В настоящее время я могу показать только количество повторений значения, но я хочу быть более точным с выводом.
Пожалуйста, помогите.
Привет