get line number for XElement here
XDocument xdoc = XDocument.Load(file);
IEnumerable<XElement> categories = xdoc.Descendants("Category");
foreach (XElement category in categories)
{
//get line number for element here...
}
Solution 1:
XElement
(actually XObject
) implements the IXmlLineInfo
interface, so you can use it:
IXmlLineInfo info = category;
int lineNumber = info.LineNumber;
Note that line information is not always available, you need to call the HasLineInfo
method to check if the information is available. You can specify LoadOptions.SetLineInfo
when you load the document with XDocument.Load
Solution 2:
XDocument xdoc = XDocument.Load(file, LoadOptions.SetLineInfo);
IEnumerable<XElement> categories = xdoc.Descendants("Category");
foreach (XElement category in categories)
{
//get line number for element here...
string lineNumber = ((IXmlLineInfo)category).HasLineInfo() ? ((IXmlLineInfo)category).LineNumber : -1;
}