предположим, что выражение:
int a=10;
printf("a=%d",printf("b=%d",a));
вывод
b=10 a=4;
b
из-за значения, присвоенного b то есть
b=10;
и
b,=,1,0
считается как четыре и присваивает a то есть:
a=4;
Лично я перешел с XMLReader на System.XML.Linq.XDocument для управления своими файлами данных XML. Таким образом, я могу легко извлекать данные из xml в объекты и управлять ими, как любым другим объектом в моей программе. Когда я закончу манипулировать ими, я могу просто сохранить изменения обратно в XML-файл в любое время.
//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");
Если я хочу использовать эти данные в легко управляемом наборе данных, я могу привязать его к списку моих объектов.
//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");
1272] Теперь его можно передавать и манипулировать с помощью любых функций, присущих моему объектному классу.
Для удобства в моем классе есть функция, которая создает себя как узел 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;
}
В MSDN есть простой пример, с которого вы можете начать здесь .
Если вас интересует чтение и запись XML-документов, а не просто использование класса XmlReader , есть хорошая статья, описывающая некоторые из ваших вариантов здесь .
Но если вы просто хотите начать и поиграть, попробуйте следующее:
XmlReaderSettings settings = new XmlReaderSettings();
settings.IgnoreWhitespace = true;
settings.IgnoreComments = true;
XmlReader reader = XmlReader.Create("file.xml", settings);
Следует использовать метод Create
вместо использования new
, поскольку XmlReader
является абстрактным классом
] с использованием шаблона Factory .
var xmlReader = XmlReader.Create("xmlfile.xml");
Из отличного C # 3.0 в двух словах , рассмотрите пример кода из главы 11.