que desea guardar y cargar mis datos XML utilizando XmlReader. Pero no sé cómo usar esta clase. ¿Me puede dar un código de muestra para comenzar?¿Cómo usar la clase XmlReader?
Respuesta
Personalmente me han cambiado lejos de XMLReader a System.XML.Linq.XDocument para administrar mis archivos de datos XML. De esta manera, puedo extraer datos de xml fácilmente en objetos y administrarlos como cualquier otro objeto en mi programa. Cuando termine de manipularlos, puedo guardar los cambios nuevamente en el archivo xml en cualquier momento.
//Load my xml document
XDocument myData = XDocument.Load(PhysicalApplicationPath + "/Data.xml");
//Create my new object
HelpItem newitem = new HelpItem();
newitem.Answer = answer;
newitem.Question = question;
newitem.Category = category;
//Find the Parent Node and then add the new item to it.
XElement helpItems = myData.Descendants("HelpItems").First();
helpItems.Add(newitem.XmlHelpItem());
//then save it back out to the file system
myData.Save(PhysicalApplicationPath + "/Data.xml");
Si quiero utilizar estos datos en un conjunto de datos de fácil administración, puedo vincularlo a una lista de mis objetos.
List<HelpItem> helpitems = (from helpitem in myData.Descendants("HelpItem")
select new HelpItem
{
Category = helpitem.Element("Category").Value,
Question = helpitem.Element("Question").Value,
Answer = helpitem.Element("Answer").Value,
}).ToList<HelpItem>();
Ahora se puede pasar alrededor y manipulado con cualquiera de las funciones inherentes de mi clase de objeto.
Para mayor comodidad de mi clase tiene una función para crear a sí mismo como un nodo XML.
public XElement XmlHelpItem()
{
XElement helpitem = new XElement("HelpItem");
XElement category = new XElement("Category", Category);
XElement question = new XElement("Question", Question);
XElement answer = new XElement("Answer", Answer);
helpitem.Add(category);
helpitem.Add(question);
helpitem.Add(answer);
return helpitem;
}
Si necesito consultar XML como si estuviera consultando otros datos, estoy de acuerdo. Pero, para la validación simple o la búsqueda solo de reenvío, XmlReader es la mejor opción porque es más eficiente. – Josh
Tenemos un problema serio cuando una pregunta titulado "Cómo utilizar la clase XmlReader" tiene una respuesta aceptada que no se acercan a responder a la pregunta. Estoy votando para eliminar o cambiar el nombre de la pregunta. –
Esta no es una buena solución si está leyendo documentos XML grandes. XMLReader te permite transmitirlo y leerlo en pedazos. – richard
se debe utilizar el método de Create
new
en lugar de utilizar, ya que es un XmlReader
abstract class
usando the Factory pattern.
var xmlReader = XmlReader.Create("xmlfile.xml");
Esto debe ser aceptado como la respuesta real a esta pregunta. –
De la excelente C# 3.0 in a Nutshell, considerar la búsqueda de la sample code del capítulo 11.
MSDN tiene un ejemplo sencillo para empezar here.
Si le interesa leer y escribir documentos XML, y no solo el uso específico de la clase XmlReader, está a nice article covering a few of your options here.
Pero si lo que desea es empezar a trabajar y jugar, intente esto:
XmlReaderSettings settings = new XmlReaderSettings();
settings.IgnoreWhitespace = true;
settings.IgnoreComments = true;
XmlReader reader = XmlReader.Create("file.xml", settings);
Siempre me sorprende cuando me encuentro con pequeños fragmentos de código que resuelven mi problema y que son fragmentos que no pude encontrar en cualquier lugar * * incluyendo el sitio de la EM. Gracias, este me salvó. –
- 1. Decidir cuándo usar XmlDocument contra XmlReader
- 2. Cómo construir XMLNodes de XmlReader
- 3. obteniendo la posición actual de un XmlReader
- 4. Lea XElement de XmlReader
- 5. XmlReader asincrónico en .NET?
- 6. Cómo cambiar la codificación de caracteres de XmlReader
- 7. Cómo usar la clase generada por Xsd2Code
- 8. Cómo usar SSL en la clase TcpClient
- 9. cómo usar la clase anidada en otra clase en java?
- 10. C# XMLreader y nodos secundarios
- 11. Cómo usar la clase XDocument en SilverLight Project (C#)
- 12. Rendimiento: XmlReader o LINQ a XML
- 13. ¿Falta XMLReader en mi versión de PHP?
- 14. Cuándo usar la clase Partitioner?
- 15. Obtener un flujo de un XmlReader
- 16. ¿Cómo se especifica el tiempo de espera para XmlReader?
- 17. rompe XmlReader en UTF-8 BOM
- 18. Por qué filestream no cierra por xmlreader
- 19. Cómo leer de un XmlReader sin moverlo reenvía
- 20. ¿Cómo creo un xmlElement del nodo actual de un xmlReader?
- 21. Intentando usar la clase C# SpellCheck
- 22. Android: ¿Cómo usar la clase de administrador de descargas?
- 23. ¿Cómo puedo usar la clase C++ en Python?
- 24. Android - ¿Cómo usar las SharedPreferences en la clase no activa?
- 25. ¿Cómo autenticarse en un proxy al usar la clase HttpClient?
- 26. ¿Cómo puedo usar la clase FileInfo, evitando PathTooLongException?
- 27. Cómo usar la clase soap en php (con ejemplo)?
- 28. Cómo definir y usar variables estáticas en la clase F #
- 29. android cómo puedo usar la clase ObjectAnimator para android 2.2
- 30. Cómo usar la clase Hibernate SchemaUpdate con una persistencia.xml JPA?
71.000 resultados de http://www.google.ca/search?hl=en&q=xmlreader+example – ChrisW
sí, pero eso es lo que es para stackoverflow, también! – Unsliced
XmlReader es el lector utilizado por POCO ENTIDADES tt para leer el archivo edmx. Así que para continuar con su API, y usarla correctamente, y no analizar el archivo emdx yo solo necesito usar XmlReader. –