2009-12-19 2 views
0

Я как бы потерял информацию о записи моей информации в файл XML.Как написать свою информацию внутри XML-файла?

Я хочу сохранить как литеральные строки, так и изображения.

У меня есть Не знаю как написать синтаксис XML-файла. Когда я создаю файл XML в Visual Studio 2008 все файл имеет это:

<?xml version="1.0" encoding="utf-8" ?> 

Так что я понятия не имею, о том, как добавить вещи.

** Редактировать: Я знаю, что такое XML, я просто не знаю, как я могу это сделать. Я знаю, что может выполнить поиск по узлам и т.д.

ли я сделать что-то вроде:

<Person> 
    <Name> 
     Sergio 
    </Name> 
    <LastName> 
     Castedo 
    </LastName> 
</Person> 

Значения, могу я пишу дерева никому, как я хочу, или есть строгий способ?

+0

XML не является отличным форматом для хранения изображений, поскольку XML - это только текст.Это можно сделать с использованием кодировки base64, но вы не получаете ничего от использования XML в двоичном формате. – itowlson

+0

Да, вы можете писать свои деревья так, как вы хотите, с соблюдением правил синтаксиса XML. Не существует «строгих способов» определения элементов, выбора между элементами и атрибутами, отступов, разломов и т. Д. – itowlson

ответ

2

Синтаксис XML очень похож на HTML, за исключением того, что структура хранилища может описывать данные, которые хранятся, но вы предпочитаете. Хорошим местом для начала изучения XML является W3School's Tutorial on XML

+1

... и как только у вас есть дескриптор базового синтаксиса, см. Классы XmlDocument, XmlWriter и/или XDocument для API для записи данных в XML с помощью .NET. – itowlson

+0

О, и XmlSerializer предоставляет простой API для сопоставления XML-документов с объектными графами и наоборот. – itowlson

0

Замечательная вещь в том, что вы можете организовать ее так, как хотите. Например:

<file> 
    <image>1234567890ABCDEFG ... Hex data stream example</image> 
    <caption>This is a picture of ... whatever</caption> 
</file> 

XML является «понятным для человека» способом хранения данных. Вы знакомы с классами или структурами? Оба позволяют вам определить тип данных любым способом, который вы можете себе представить (с любыми типами, доступными для использования). XML похож на то, что вы можете определить новый тип данных (по крайней мере, это может быть удобным способом взглянуть на него).

Как вы хотите хранить ваши данные? Является ли XML лучшим способом для этого? Как должна быть организована информация в структурированном документе? Это несколько вопросов, на которые вы должны ответить, прежде чем продолжить. Приведенный выше пример может не выражать то, о чем вы думаете, но может быть изменен в соответствии с вашими потребностями.

Из описания ваших потребностей в хранении данных вы, возможно, можете сбросить свои строки между тегами по вашему выбору (независимо от того, что вы решите, что они должны быть). Что касается изображений, вы можете захотеть, чтобы HEX выгрузил содержимое или базу 64, закодировав их и выгрузив результирующую строку. Не забывайте формат изображения.

+0

Помогает ли вам это, Папучино1? Я могу уточнить, если вам нужна дополнительная помощь. –

+0

Привет, спасибо за помощь. Я в основном смотрю на XML для сохранения информации, которую отобразит моя программа, потому что это просто и очень подходит для использования, которое я хочу дать. Просто выталкивайте информацию, когда ее вызываете, вот и все. Я предполагаю, что могу сохранить только строки, но если я хочу сохранить изображение, лучше всего просто сохранить его местоположения в ресурсах правильно? Я просто хочу, чтобы все было организовано, поэтому я могу использовать их в своей программе с помощью общих методов. –

-1

Я думаю, что вам, вероятно, следует google «что такое xml». Шутки в сторону. Я не пытаюсь быть задницей.

0

Попробуйте XML-редактор Altova. Он имеет визуальный интерфейс, который поможет вам лучше понять структуру вашего XML-файла.

http://www.altova.com/xml-editor/

1

Как уже сказали, что вы не должны писать с синтаксисом самостоятельно. Вы можете легко создать XML-файл, используя класс XmlTextWriter в пространстве имен System.Xml. Для сохранения изображений вы можете преобразовать необработанные байты изображения в строки с кодировкой Base64 с Convert.ToBase64String и сохранить их в своем файле.

XmlTextWriter outputWriter = new XmlTextWriter(@"C:\somefile.xml", Encoding.Default); 
outputWriter.WriteStartDocument(); 
outputWriter.WriteStartElement("main") 
outputWriter.WriteStartElement("with_attributes") 
outputWriter.WriteAttributeString("attribute", "value"); 
outputWriter.WriteEndElement(); 
outputWriter.WriteStartElement("image"); 
outputWriter.WriteCData(Convert.ToBase64String(myByteArray)); 
outputWriter.WriteEndElement(); 
outputWriter.WriteEndElement(); 

Все это довольно прямолинейно.

Смежные вопросы