2014-05-23 2 views
0

Мне поручено написать потенциально огромную функцию на C++, которая занимается поиском и записью в файл XML.Чтение, поиск и запись в XML с использованием C++

Есть ли способ в C++ для поиска по XML-файлу, либо в виде XML-файла, либо только в виде необработанного текста, в пути и записи записи в конце этого пути. Например:

<File> 
    <Record> 
     <Name>Joe</Name> 
     <Age>52</Age> 
    </Record> 
</File> 

Функция будет искать конец последней записи, а затем вставить строку для новой записи, то затем идет через петлю, он находит новую запись тега, вставляет имя, затем в следующий раз он вставляет возраст, затем закрывает метку записи.

Любые идеи или источники, которые могут быть полезны для этого уровня манипуляций? Советы о том, как он должен идти?

Для тех, кто называет это дубликат, позвольте мне добавить, что я не могу использовать стороннюю DLL. Я должен сам кодировать все.

+0

Дубликаты: http://stackoverflow.com/questions/9387610/what-xml-parser-should-i-use-in-c, http://stackoverflow.com/questions/170686/best-open-xml -parser-for-c, – JBentley

+0

Не дубликат. Все они ссылаются на использование DLL сторонних разработчиков. Мне не разрешено использовать их. – user3215251

+2

Вам не нужно динамически ссылаться на сторонние библиотеки (DLL). Однако, если вы должны написать свой собственный код, то что именно вы спрашиваете? «есть ли способ в C++» - это бессмысленный вопрос - конечно, есть способ, иначе для этого не было бы сторонних библиотек. Если вы хотите получить подробное представление об этом, прочитайте спецификацию XML и/или посмотрите на источник различных библиотек XML C++. Если вам нужна помощь здесь, вам нужно задать конкретный конкретный вопрос. – JBentley

ответ

3

Использовать boost :: property_tree, он может обрабатывать XML и, на мой взгляд, довольно хорош.

http://www.boost.org/doc/libs/1_41_0/doc/html/boost_propertytree/tutorial.html должен дать вам подсказку. Я написал небольшой проект, используя его, и это было полезно. Существуют и другие синтаксические анализаторы, такие как tinyXML, что тоже неплохо.

+0

Мне не разрешено использовать сторонние DLL. Я должен использовать только свой код. – user3215251

+0

Это определение не очень точное: TinyXML поставляется с версией исходного кода. – clambake

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