@madhusudhangovindu,
I made a solution in C#,
private void Logic(Document doc)
{
var countByLevel = new int[9];
int level = 0;
var headingList = doc.GetChildNodes(NodeType.Paragraph, true).Cast<Paragraph>().Where(p => p.ParagraphFormat.StyleName.Contains("Level")); // all paragraphs with Headings styles
int previusLevel = 0;
foreach (Paragraph paragraph in headingList)
{
if (paragraph.ListFormat.IsListItem)
{
string styleName = paragraph.ParagraphFormat.StyleName;
string levelStr = styleName.Replace("Level ", "");
level = Convert.ToInt32(levelStr);
string text = paragraph.ToString(SaveFormat.Text);
countByLevel[level - 1] = countByLevel[level - 1] + 1;
if (level < previusLevel)
{
countByLevel[previusLevel - 1] = 0;
}
Console.WriteLine($"Number: {GetStringNumber(level, countByLevel)} - Text: {text}");
previusLevel = level;
}
}
Console.ReadKey();
}
private string GetStringNumber(int level, int[] countLevels)
{
string result = "";
for (int i = 0; i < level; i++)
{
if (string.IsNullOrWhiteSpace(result))
{
result += countLevels[i];
}
else
{
result += $".{countLevels[i]}";
}
}
return result;
}

Solution in Java:
public void Logic(Document doc) throws Exception
{
var countByLevel = new int[9];
int level = 0;
var headingList = doc.getChildNodes(NodeType.PARAGRAPH, true).toArray();
int previusLevel = 0;
for (Node node : headingList)
{
var paragraph = (com.aspose.words.Paragraph)node;
if(paragraph.getParagraphFormat().getStyleName().contains("Level")
&& paragraph.getListFormat().isListItem())
{
String styleName = paragraph.getParagraphFormat().getStyleName();
String levelStr = styleName.replace("Level ", "");
level = Integer.valueOf(levelStr);
String text = paragraph.toString(SaveFormat.TEXT); // (SaveFormat.Text);
countByLevel[level - 1] = countByLevel[level - 1] + 1;
if (level < previusLevel)
{
countByLevel[previusLevel - 1] = 0;
}
System.out.println("Number: " + GetStringNumber(level, countByLevel) + " Text: " + text);
previusLevel = level;
}
}
}
private String GetStringNumber(int level, int[] countLevels)
{
String result = "";
for (int i = 0; i < level; i++)
{
if (result == "")
{
result += countLevels[i];
}
else
{
result += "." + countLevels[i];
}
}
return result;
}
