XDocument xdoc = XDocument.Load(file);
IEnumerable<XElement> categories = xdoc.Descendants("Category");
foreach (XElement category in categories)
{
//get line number for element here...
}
Respuesta
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;
}
XElement
(en realidad XObject
) implementa la interfaz IXmlLineInfo
, para que pueda usarlo:
IXmlLineInfo info = category;
int lineNumber = info.LineNumber;
Tenga en cuenta que la línea de información no siempre está disponible, es necesario llame al método HasLineInfo
para verificar si la información está disponible. Puede especificar LoadOptions.SetLineInfo
cuando se carga el documento con XDocument.Load
esto debería marcarse como la respuesta, supongo ... –
+1 para una explicación real! – cod3monk3y
acepta esta respuesta ... funciona como magia ... gracias @Thomas – Scorpio
- 1. XMLSerializer para XElement
- 2. XElement Añadir función añade xmlns = "" a la XElement
- 3. Deserialize XElement en la Clase (s)
- 4. LinqToXML XElement a XmlNode
- 5. XElement agrega un xmlns
- 6. Ordenación de un XElement
- 7. Convertir XElement a cadena
- 8. análisis XML utilizando XElement
- 9. Lea XElement de XmlReader
- 10. Children of XElement
- 11. Índice de Child XElement
- 12. ¿Cómo agregar más atributos en XElement?
- 13. Obtener elementos secundarios de XElement
- 14. XElement añadir el prefijo única
- 15. espacios de nombres XElement (¿Cómo?)
- 16. aquí en JQUERY para jqGrid carga
- 17. ¿Alguien aquí tiene experiencia desarrollando para Minix?
- 18. Seleccionar un XElement de un XDocument
- 19. XElement agrega automáticamente xmlns = "" a sí mismo
- 20. Aquí hay quince caracteres
- 21. ¿Alguien aquí se bifurca?
- 22. aquí vs muesca espacio
- 23. ¿Debo implementar IDisposable aquí?
- 24. Validación de esquema XML de XElement
- 25. jQuery UI aquí tamaño
- 26. ¿Qué significa useMethod aquí?
- 27. OpenXml: Convierta un XElement en un OpenXmlElement
- 28. ¿Cómo poner atributos a través de XElement
- 29. ¿Cómo usar XPath con XElement o LINQ?
- 30. Cómo ingresar texto al usar XElement
IXmlLineInfo.LineNumber devuelve '' no int' string' –
En lo personal, desde C# 6, lo escribiría as'int lineno = (categoría que IXmlLineInfo) ?. LineNumber? ? -1; ' – maxp