<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Комментарии на: Чтение настроек приложения</title>
	<atom:link href="http://www.devexp.ru/2010/02/chtenie-nastroek-prilozheniya/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.devexp.ru/2010/02/chtenie-nastroek-prilozheniya/</link>
	<description>Сборник рецептов</description>
	<lastBuildDate>Mon, 03 Oct 2011 12:26:02 +0400</lastBuildDate>
	
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>От: Андрей</title>
		<link>http://www.devexp.ru/2010/02/chtenie-nastroek-prilozheniya/comment-page-1/#comment-1690</link>
		<dc:creator>Андрей</dc:creator>
		<pubDate>Thu, 24 Feb 2011 11:10:04 +0000</pubDate>
		<guid isPermaLink="false">http://www.devexp.ru/2010/02/chtenie-nastroek-prilozheniya/#comment-1690</guid>
		<description>Форматирование xml можно сохранить если использовать boost::property_tree::xml_writer_settings. Например


write_xml ( path-to-file, tree, std::locale(), xml_writter_settings(&#039; &#039;, 1)  );</description>
		<content:encoded><![CDATA[<p>Форматирование xml можно сохранить если использовать boost::property_tree::xml_writer_settings. Например</p>
<p>write_xml ( path-to-file, tree, std::locale(), xml_writter_settings(&#8217; &#8216;, 1)  );</p>
]]></content:encoded>
	</item>
	<item>
		<title>От: topright</title>
		<link>http://www.devexp.ru/2010/02/chtenie-nastroek-prilozheniya/comment-page-1/#comment-1178</link>
		<dc:creator>topright</dc:creator>
		<pubDate>Fri, 01 Oct 2010 15:19:56 +0000</pubDate>
		<guid isPermaLink="false">http://www.devexp.ru/2010/02/chtenie-nastroek-prilozheniya/#comment-1178</guid>
		<description>Приличная статья, благодарю.</description>
		<content:encoded><![CDATA[<p>Приличная статья, благодарю.</p>
]]></content:encoded>
	</item>
	<item>
		<title>От: jershell</title>
		<link>http://www.devexp.ru/2010/02/chtenie-nastroek-prilozheniya/comment-page-1/#comment-1087</link>
		<dc:creator>jershell</dc:creator>
		<pubDate>Fri, 20 Aug 2010 11:06:37 +0000</pubDate>
		<guid isPermaLink="false">http://www.devexp.ru/2010/02/chtenie-nastroek-prilozheniya/#comment-1087</guid>
		<description>Спасибо за статью. Решил использовать его для рабора с ini подобным фалом , но возникли трудности. В файлах повторяется одна из секций. Эта библиотека позволяет описать исключения? Или придется описывать граматику у spirit`а? Как вариант предварительно удалять повторяющийся ключ, а потом снова его добавлять.</description>
		<content:encoded><![CDATA[<p>Спасибо за статью. Решил использовать его для рабора с ini подобным фалом , но возникли трудности. В файлах повторяется одна из секций. Эта библиотека позволяет описать исключения? Или придется описывать граматику у spirit`а? Как вариант предварительно удалять повторяющийся ключ, а потом снова его добавлять.</p>
]]></content:encoded>
	</item>
	<item>
		<title>От: Максим Тремпольцев</title>
		<link>http://www.devexp.ru/2010/02/chtenie-nastroek-prilozheniya/comment-page-1/#comment-293</link>
		<dc:creator>Максим Тремпольцев</dc:creator>
		<pubDate>Mon, 01 Mar 2010 17:49:24 +0000</pubDate>
		<guid isPermaLink="false">http://www.devexp.ru/2010/02/chtenie-nastroek-prilozheniya/#comment-293</guid>
		<description>Спасибо! Важное дополнение. Я не затронул тему XML-атрибутов из-за того, что используя их мы не сможем писать общий код для любых форматов представления данных, но конечно используя только XML это очень актуально.</description>
		<content:encoded><![CDATA[<p>Спасибо! Важное дополнение. Я не затронул тему XML-атрибутов из-за того, что используя их мы не сможем писать общий код для любых форматов представления данных, но конечно используя только XML это очень актуально.</p>
]]></content:encoded>
	</item>
	<item>
		<title>От: SG_House</title>
		<link>http://www.devexp.ru/2010/02/chtenie-nastroek-prilozheniya/comment-page-1/#comment-290</link>
		<dc:creator>SG_House</dc:creator>
		<pubDate>Mon, 01 Mar 2010 16:14:22 +0000</pubDate>
		<guid isPermaLink="false">http://www.devexp.ru/2010/02/chtenie-nastroek-prilozheniya/#comment-290</guid>
		<description>Пример элемента name в предыдущем комментарии не отобразился, вероятно, из-за особенностей данного сайта. Попробую по-другому:

&lt;name type_of_name=&quot;local&quot;&gt;alpha server&lt;/name&gt;</description>
		<content:encoded><![CDATA[<p>Пример элемента name в предыдущем комментарии не отобразился, вероятно, из-за особенностей данного сайта. Попробую по-другому:</p>
<p>&lt;name type_of_name=&#8221;local&#8221;&gt;alpha server&lt;/name&gt;</p>
]]></content:encoded>
	</item>
	<item>
		<title>От: SG_House</title>
		<link>http://www.devexp.ru/2010/02/chtenie-nastroek-prilozheniya/comment-page-1/#comment-289</link>
		<dc:creator>SG_House</dc:creator>
		<pubDate>Mon, 01 Mar 2010 16:11:11 +0000</pubDate>
		<guid isPermaLink="false">http://www.devexp.ru/2010/02/chtenie-nastroek-prilozheniya/#comment-289</guid>
		<description>Хотелось бы добавить про загрузку атрибутов xml-элементов. В документации по библиотеке об этом сказано весьма вскользь, так что лично мне пришлось потратить некоторое время, чтобы разобраться.

Очевидно, что дочерний элемент xml-дерева представляется дочерним же элементом в библиотеке. И, опираясь на пример выше, код доступа к значению элемента name выглядит так:

std::string sName = config.get(&quot;server.name&quot;);

Что тоже самое, как:

std::string sName = config.get_child(&quot;server.name&quot;).get_value();

А вот предположим, что у элемента name есть атрибут, например:

alpha server

Оказывается, атрибуты в библиотеке представлены как дочерние элементы специального дочернего элемента &quot;&lt;xmlattr&gt;&quot; самого элемента. То есть, чтобы прочитать значение атрибута, нужно написать:

std::string sTypeOfName = config.get(&quot;server.name.&lt;xmlattr&gt;.type_of_name&quot;);

или

const boost::property_tree::ptree&amp; NameEl = config.get_child(&quot;server.name&quot;)
std::string sTypeOfName = NameEl.get_value(&quot;&lt;xmlattr&gt;.type_of_name&quot;);

PS. Может быть, здесь написанное итак очевидно, но, надеюсь, этот комментарий кому-то поможет.</description>
		<content:encoded><![CDATA[<p>Хотелось бы добавить про загрузку атрибутов xml-элементов. В документации по библиотеке об этом сказано весьма вскользь, так что лично мне пришлось потратить некоторое время, чтобы разобраться.</p>
<p>Очевидно, что дочерний элемент xml-дерева представляется дочерним же элементом в библиотеке. И, опираясь на пример выше, код доступа к значению элемента name выглядит так:</p>
<p>std::string sName = config.get(&#8221;server.name&#8221;);</p>
<p>Что тоже самое, как:</p>
<p>std::string sName = config.get_child(&#8221;server.name&#8221;).get_value();</p>
<p>А вот предположим, что у элемента name есть атрибут, например:</p>
<p>alpha server</p>
<p>Оказывается, атрибуты в библиотеке представлены как дочерние элементы специального дочернего элемента &#8220;&lt;xmlattr&gt;&#8221; самого элемента. То есть, чтобы прочитать значение атрибута, нужно написать:</p>
<p>std::string sTypeOfName = config.get(&#8221;server.name.&lt;xmlattr&gt;.type_of_name&#8221;);</p>
<p>или</p>
<p>const boost::property_tree::ptree&amp; NameEl = config.get_child(&#8221;server.name&#8221;)<br />
std::string sTypeOfName = NameEl.get_value(&#8221;&lt;xmlattr&gt;.type_of_name&#8221;);</p>
<p>PS. Может быть, здесь написанное итак очевидно, но, надеюсь, этот комментарий кому-то поможет.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

