~ubuntu-branches/ubuntu/utopic/glib2.0/utopic

« back to all changes in this revision

Viewing changes to docs/reference/glib/html/glib-Simple-XML-Subset-Parser.html

  • Committer: Package Import Robot
  • Author(s): Iain Lane
  • Date: 2014-10-02 13:08:24 UTC
  • mfrom: (1.67.13)
  • mto: This revision was merged to the branch mainline in revision 233.
  • Revision ID: package-import@ubuntu.com-20141002130824-cqp99rbif2g6wf6r
Tags: upstream-2.42.0
ImportĀ upstreamĀ versionĀ 2.42.0

Show diffs side-by-side

added added

removed removed

Lines of Context:
317
317
7
318
318
8
319
319
9</pre></td>
320
 
        <td class="listing_code"><pre class="programlisting"><span class="keyword">const</span><span class="normal"> </span><span class="type">char</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">store </span><span class="symbol">=</span><span class="normal"> </span><span class="string">"Fortnum &amp; Mason"</span><span class="symbol">;</span>
321
 
<span class="keyword">const</span><span class="normal"> </span><span class="type">char</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">item </span><span class="symbol">=</span><span class="normal"> </span><span class="string">"Tea"</span><span class="symbol">;</span>
322
 
<span class="type">char</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">output</span><span class="symbol">;</span>
 
320
        <td class="listing_code"><pre class="programlisting"><span class="gtkdoc kwb">const char</span> <span class="gtkdoc opt">*</span>store <span class="gtkdoc opt">=</span> <span class="string">&quot;Fortnum &amp; Mason&quot;</span><span class="gtkdoc opt">;</span>
 
321
<span class="gtkdoc kwb">const char</span> <span class="gtkdoc opt">*</span>item <span class="gtkdoc opt">=</span> <span class="string">&quot;Tea&quot;</span><span class="gtkdoc opt">;</span>
 
322
<span class="gtkdoc kwb">char</span> <span class="gtkdoc opt">*</span>output<span class="gtkdoc opt">;</span>
323
323
 
324
 
<span class="normal">output </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="glib-Simple-XML-Subset-Parser.html#g-markup-printf-escaped">g_markup_printf_escaped</a></span><span class="normal"> </span><span class="symbol">(</span><span class="string">"&lt;purchase&gt;"</span>
325
 
<span class="normal">                                  </span><span class="string">"&lt;store&gt;%s&lt;/store&gt;"</span>
326
 
<span class="normal">                                  </span><span class="string">"&lt;item&gt;%s&lt;/item&gt;"</span>
327
 
<span class="normal">                                  </span><span class="string">"&lt;/purchase&gt;"</span><span class="symbol">,</span>
328
 
<span class="normal">                                  store</span><span class="symbol">,</span><span class="normal"> item</span><span class="symbol">);</span></pre></td>
 
324
output <span class="gtkdoc opt">=</span> <span class="function"><a href="glib-Simple-XML-Subset-Parser.html#g-markup-printf-escaped">g_markup_printf_escaped</a></span> <span class="gtkdoc opt">(</span><span class="string">&quot;&lt;purchase&gt;&quot;</span>
 
325
                                  <span class="string">&quot;&lt;store&gt;%s&lt;/store&gt;&quot;</span>
 
326
                                  <span class="string">&quot;&lt;item&gt;%s&lt;/item&gt;&quot;</span>
 
327
                                  <span class="string">&quot;&lt;/purchase&gt;&quot;</span><span class="gtkdoc opt">,</span>
 
328
                                  store<span class="gtkdoc opt">,</span> item<span class="gtkdoc opt">);</span></pre></td>
329
329
      </tr>
330
330
    </tbody>
331
331
  </table>
791
791
34
792
792
35
793
793
36</pre></td>
794
 
        <td class="listing_code"><pre class="programlisting"><span class="keyword">typedef</span><span class="normal"> </span><span class="keyword">struct</span>
795
 
<span class="cbracket">{</span>
796
 
<span class="normal">  </span><span class="usertype">gint</span><span class="normal"> tag_count</span><span class="symbol">;</span>
797
 
<span class="cbracket">}</span><span class="normal"> CounterData</span><span class="symbol">;</span>
798
 
 
799
 
<span class="keyword">static</span><span class="normal"> </span><span class="type">void</span>
800
 
<span class="function">counter_start_element</span><span class="normal"> </span><span class="symbol">(</span><span class="usertype">GMarkupParseContext</span><span class="normal">  </span><span class="symbol">*</span><span class="normal">context</span><span class="symbol">,</span>
801
 
<span class="normal">                       </span><span class="keyword">const</span><span class="normal"> </span><span class="usertype">gchar</span><span class="normal">          </span><span class="symbol">*</span><span class="normal">element_name</span><span class="symbol">,</span>
802
 
<span class="normal">                       </span><span class="keyword">const</span><span class="normal"> </span><span class="usertype">gchar</span><span class="normal">         </span><span class="symbol">**</span><span class="normal">attribute_names</span><span class="symbol">,</span>
803
 
<span class="normal">                       </span><span class="keyword">const</span><span class="normal"> </span><span class="usertype">gchar</span><span class="normal">         </span><span class="symbol">**</span><span class="normal">attribute_values</span><span class="symbol">,</span>
804
 
<span class="normal">                       </span><span class="usertype">gpointer</span><span class="normal">              user_data</span><span class="symbol">,</span>
805
 
<span class="normal">                       </span><span class="usertype">GError</span><span class="normal">              </span><span class="symbol">**</span><span class="normal">error</span><span class="symbol">)</span>
806
 
<span class="cbracket">{</span>
807
 
<span class="normal">  </span><span class="usertype">CounterData</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">data </span><span class="symbol">=</span><span class="normal"> user_data</span><span class="symbol">;</span>
808
 
 
809
 
<span class="normal">  data</span><span class="symbol">-&gt;</span><span class="normal">tag_count</span><span class="symbol">++;</span>
810
 
<span class="cbracket">}</span>
811
 
 
812
 
<span class="keyword">static</span><span class="normal"> </span><span class="type">void</span>
813
 
<span class="function">counter_error</span><span class="normal"> </span><span class="symbol">(</span><span class="usertype">GMarkupParseContext</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">context</span><span class="symbol">,</span>
814
 
<span class="normal">               </span><span class="usertype">GError</span><span class="normal">              </span><span class="symbol">*</span><span class="normal">error</span><span class="symbol">,</span>
815
 
<span class="normal">               </span><span class="usertype">gpointer</span><span class="normal">             user_data</span><span class="symbol">)</span>
816
 
<span class="cbracket">{</span>
817
 
<span class="normal">  </span><span class="usertype">CounterData</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">data </span><span class="symbol">=</span><span class="normal"> user_data</span><span class="symbol">;</span>
818
 
 
819
 
<span class="normal">  </span><span class="function"><a href="glib-Memory-Slices.html#g-slice-free">g_slice_free</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">CounterData</span><span class="symbol">,</span><span class="normal"> data</span><span class="symbol">);</span>
820
 
<span class="cbracket">}</span>
821
 
 
822
 
<span class="keyword">static</span><span class="normal"> </span><span class="usertype">GMarkupParser</span><span class="normal"> counter_subparser </span><span class="symbol">=</span>
823
 
<span class="cbracket">{</span>
824
 
<span class="normal">  counter_start_element</span><span class="symbol">,</span>
825
 
<span class="normal">  <a href="glib-Standard-Macros.html#NULL:CAPS">NULL</a></span><span class="symbol">,</span>
826
 
<span class="normal">  <a href="glib-Standard-Macros.html#NULL:CAPS">NULL</a></span><span class="symbol">,</span>
827
 
<span class="normal">  <a href="glib-Standard-Macros.html#NULL:CAPS">NULL</a></span><span class="symbol">,</span>
828
 
<span class="normal">  counter_error</span>
829
 
<span class="cbracket">}</span><span class="symbol">;</span></pre></td>
 
794
        <td class="listing_code"><pre class="programlisting"><span class="gtkdoc kwc">typedef</span> <span class="gtkdoc kwb">struct</span>
 
795
<span class="gtkdoc opt">{</span>
 
796
  gint tag_count<span class="gtkdoc opt">;</span>
 
797
<span class="gtkdoc opt">}</span> CounterData<span class="gtkdoc opt">;</span>
 
798
 
 
799
<span class="gtkdoc kwb">static void</span>
 
800
<span class="function">counter_start_element</span> <span class="gtkdoc opt">(</span>GMarkupParseContext  <span class="gtkdoc opt">*</span>context<span class="gtkdoc opt">,</span>
 
801
                       <span class="gtkdoc kwb">const</span> gchar          <span class="gtkdoc opt">*</span>element_name<span class="gtkdoc opt">,</span>
 
802
                       <span class="gtkdoc kwb">const</span> gchar         <span class="gtkdoc opt">**</span>attribute_names<span class="gtkdoc opt">,</span>
 
803
                       <span class="gtkdoc kwb">const</span> gchar         <span class="gtkdoc opt">**</span>attribute_values<span class="gtkdoc opt">,</span>
 
804
                       gpointer              user_data<span class="gtkdoc opt">,</span>
 
805
                       GError              <span class="gtkdoc opt">**</span>error<span class="gtkdoc opt">)</span>
 
806
<span class="gtkdoc opt">{</span>
 
807
  CounterData <span class="gtkdoc opt">*</span>data <span class="gtkdoc opt">=</span> user_data<span class="gtkdoc opt">;</span>
 
808
 
 
809
  data<span class="gtkdoc opt">-&gt;</span>tag_count<span class="gtkdoc opt">++;</span>
 
810
<span class="gtkdoc opt">}</span>
 
811
 
 
812
<span class="gtkdoc kwb">static void</span>
 
813
<span class="function">counter_error</span> <span class="gtkdoc opt">(</span>GMarkupParseContext <span class="gtkdoc opt">*</span>context<span class="gtkdoc opt">,</span>
 
814
               GError              <span class="gtkdoc opt">*</span>error<span class="gtkdoc opt">,</span>
 
815
               gpointer             user_data<span class="gtkdoc opt">)</span>
 
816
<span class="gtkdoc opt">{</span>
 
817
  CounterData <span class="gtkdoc opt">*</span>data <span class="gtkdoc opt">=</span> user_data<span class="gtkdoc opt">;</span>
 
818
 
 
819
  <span class="function"><a href="glib-Memory-Slices.html#g-slice-free">g_slice_free</a></span> <span class="gtkdoc opt">(</span>CounterData<span class="gtkdoc opt">,</span> data<span class="gtkdoc opt">);</span>
 
820
<span class="gtkdoc opt">}</span>
 
821
 
 
822
<span class="gtkdoc kwb">static</span> GMarkupParser counter_subparser <span class="gtkdoc opt">=</span>
 
823
<span class="gtkdoc opt">{</span>
 
824
  counter_start_element<span class="gtkdoc opt">,</span>
 
825
  NULL<span class="gtkdoc opt">,</span>
 
826
  NULL<span class="gtkdoc opt">,</span>
 
827
  NULL<span class="gtkdoc opt">,</span>
 
828
  counter_error
 
829
<span class="gtkdoc opt">};</span></pre></td>
830
830
      </tr>
831
831
    </tbody>
832
832
  </table>
859
859
18
860
860
19
861
861
20</pre></td>
862
 
        <td class="listing_code"><pre class="programlisting"><span class="type">void</span>
863
 
<span class="function">start_counting</span><span class="normal"> </span><span class="symbol">(</span><span class="usertype">GMarkupParseContext</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">context</span><span class="symbol">)</span>
864
 
<span class="cbracket">{</span>
865
 
<span class="normal">  </span><span class="usertype">CounterData</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">data </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="glib-Memory-Slices.html#g-slice-new">g_slice_new</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">CounterData</span><span class="symbol">);</span>
866
 
 
867
 
<span class="normal">  data</span><span class="symbol">-&gt;</span><span class="normal">tag_count </span><span class="symbol">=</span><span class="normal"> </span><span class="number">0</span><span class="symbol">;</span>
868
 
<span class="normal">  </span><span class="function"><a href="glib-Simple-XML-Subset-Parser.html#g-markup-parse-context-push">g_markup_parse_context_push</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">context</span><span class="symbol">,</span><span class="normal"> </span><span class="symbol">&amp;</span><span class="normal">counter_subparser</span><span class="symbol">,</span><span class="normal"> data</span><span class="symbol">);</span>
869
 
<span class="cbracket">}</span>
870
 
 
871
 
<span class="normal"><a href="glib-Basic-Types.html#gint">gint</a></span>
872
 
<span class="function">end_counting</span><span class="normal"> </span><span class="symbol">(</span><span class="usertype">GMarkupParseContext</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">context</span><span class="symbol">)</span>
873
 
<span class="cbracket">{</span>
874
 
<span class="normal">  </span><span class="usertype">CounterData</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">data </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="glib-Simple-XML-Subset-Parser.html#g-markup-parse-context-pop">g_markup_parse_context_pop</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">context</span><span class="symbol">);</span>
875
 
<span class="normal">  </span><span class="type">int</span><span class="normal"> result</span><span class="symbol">;</span>
876
 
 
877
 
<span class="normal">  result </span><span class="symbol">=</span><span class="normal"> data</span><span class="symbol">-&gt;</span><span class="normal">tag_count</span><span class="symbol">;</span>
878
 
<span class="normal">  </span><span class="function"><a href="glib-Memory-Slices.html#g-slice-free">g_slice_free</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">CounterData</span><span class="symbol">,</span><span class="normal"> data</span><span class="symbol">);</span>
879
 
 
880
 
<span class="normal">  </span><span class="keyword">return</span><span class="normal"> result</span><span class="symbol">;</span>
881
 
<span class="cbracket">}</span></pre></td>
 
862
        <td class="listing_code"><pre class="programlisting"><span class="gtkdoc kwb">void</span>
 
863
<span class="function">start_counting</span> <span class="gtkdoc opt">(</span>GMarkupParseContext <span class="gtkdoc opt">*</span>context<span class="gtkdoc opt">)</span>
 
864
<span class="gtkdoc opt">{</span>
 
865
  CounterData <span class="gtkdoc opt">*</span>data <span class="gtkdoc opt">=</span> <span class="function"><a href="glib-Memory-Slices.html#g-slice-new">g_slice_new</a></span> <span class="gtkdoc opt">(</span>CounterData<span class="gtkdoc opt">);</span>
 
866
 
 
867
  data<span class="gtkdoc opt">-&gt;</span>tag_count <span class="gtkdoc opt">=</span> <span class="number">0</span><span class="gtkdoc opt">;</span>
 
868
  <span class="function"><a href="glib-Simple-XML-Subset-Parser.html#g-markup-parse-context-push">g_markup_parse_context_push</a></span> <span class="gtkdoc opt">(</span>context<span class="gtkdoc opt">, &amp;</span>counter_subparser<span class="gtkdoc opt">,</span> data<span class="gtkdoc opt">);</span>
 
869
<span class="gtkdoc opt">}</span>
 
870
 
 
871
gint
 
872
<span class="function">end_counting</span> <span class="gtkdoc opt">(</span>GMarkupParseContext <span class="gtkdoc opt">*</span>context<span class="gtkdoc opt">)</span>
 
873
<span class="gtkdoc opt">{</span>
 
874
  CounterData <span class="gtkdoc opt">*</span>data <span class="gtkdoc opt">=</span> <span class="function"><a href="glib-Simple-XML-Subset-Parser.html#g-markup-parse-context-pop">g_markup_parse_context_pop</a></span> <span class="gtkdoc opt">(</span>context<span class="gtkdoc opt">);</span>
 
875
  <span class="gtkdoc kwb">int</span> result<span class="gtkdoc opt">;</span>
 
876
 
 
877
  result <span class="gtkdoc opt">=</span> data<span class="gtkdoc opt">-&gt;</span>tag_count<span class="gtkdoc opt">;</span>
 
878
  <span class="function"><a href="glib-Memory-Slices.html#g-slice-free">g_slice_free</a></span> <span class="gtkdoc opt">(</span>CounterData<span class="gtkdoc opt">,</span> data<span class="gtkdoc opt">);</span>
 
879
 
 
880
  <span class="keyword">return</span> result<span class="gtkdoc opt">;</span>
 
881
<span class="gtkdoc opt">}</span></pre></td>
882
882
      </tr>
883
883
    </tbody>
884
884
  </table>
905
905
13
906
906
14
907
907
15</pre></td>
908
 
        <td class="listing_code"><pre class="programlisting"><span class="keyword">static</span><span class="normal"> </span><span class="type">void</span><span class="normal"> </span><span class="function">start_element</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">context</span><span class="symbol">,</span><span class="normal"> element_name</span><span class="symbol">,</span><span class="normal"> </span><span class="symbol">...)</span>
909
 
<span class="cbracket">{</span>
910
 
<span class="normal">  </span><span class="keyword">if</span><span class="normal"> </span><span class="symbol">(</span><span class="function">strcmp</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">element_name</span><span class="symbol">,</span><span class="normal"> </span><span class="string">"count-these"</span><span class="symbol">)</span><span class="normal"> </span><span class="symbol">==</span><span class="normal"> </span><span class="number">0</span><span class="symbol">)</span>
911
 
<span class="normal">    </span><span class="function">start_counting</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">context</span><span class="symbol">);</span>
912
 
 
913
 
<span class="normal">  </span><span class="comment">// else, handle other tags...</span>
914
 
<span class="cbracket">}</span>
915
 
 
916
 
<span class="keyword">static</span><span class="normal"> </span><span class="type">void</span><span class="normal"> </span><span class="function">end_element</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">context</span><span class="symbol">,</span><span class="normal"> element_name</span><span class="symbol">,</span><span class="normal"> </span><span class="symbol">...)</span>
917
 
<span class="cbracket">{</span>
918
 
<span class="normal">  </span><span class="keyword">if</span><span class="normal"> </span><span class="symbol">(</span><span class="function">strcmp</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">element_name</span><span class="symbol">,</span><span class="normal"> </span><span class="string">"count-these"</span><span class="symbol">)</span><span class="normal"> </span><span class="symbol">==</span><span class="normal"> </span><span class="number">0</span><span class="symbol">)</span>
919
 
<span class="normal">    </span><span class="function"><a href="glib-Warnings-and-Assertions.html#g-print">g_print</a></span><span class="normal"> </span><span class="symbol">(</span><span class="string">"Counted %d tags</span><span class="specialchar">\n</span><span class="string">"</span><span class="symbol">,</span><span class="normal"> </span><span class="function">end_counting</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">context</span><span class="symbol">));</span>
920
 
 
921
 
<span class="normal">  </span><span class="comment">// else, handle other tags...</span>
922
 
<span class="cbracket">}</span></pre></td>
 
908
        <td class="listing_code"><pre class="programlisting"><span class="gtkdoc kwb">static void</span> <span class="function">start_element</span> <span class="gtkdoc opt">(</span>context<span class="gtkdoc opt">,</span> element_name<span class="gtkdoc opt">, ...)</span>
 
909
<span class="gtkdoc opt">{</span>
 
910
  <span class="keyword">if</span> <span class="gtkdoc opt">(</span><span class="function">strcmp</span> <span class="gtkdoc opt">(</span>element_name<span class="gtkdoc opt">,</span> <span class="string">&quot;count-these&quot;</span><span class="gtkdoc opt">) ==</span> <span class="number">0</span><span class="gtkdoc opt">)</span>
 
911
    <span class="function">start_counting</span> <span class="gtkdoc opt">(</span>context<span class="gtkdoc opt">);</span>
 
912
 
 
913
  <span class="gtkdoc slc">// else, handle other tags...</span>
 
914
<span class="gtkdoc opt">}</span>
 
915
 
 
916
<span class="gtkdoc kwb">static void</span> <span class="function">end_element</span> <span class="gtkdoc opt">(</span>context<span class="gtkdoc opt">,</span> element_name<span class="gtkdoc opt">, ...)</span>
 
917
<span class="gtkdoc opt">{</span>
 
918
  <span class="keyword">if</span> <span class="gtkdoc opt">(</span><span class="function">strcmp</span> <span class="gtkdoc opt">(</span>element_name<span class="gtkdoc opt">,</span> <span class="string">&quot;count-these&quot;</span><span class="gtkdoc opt">) ==</span> <span class="number">0</span><span class="gtkdoc opt">)</span>
 
919
    <span class="function"><a href="glib-Warnings-and-Assertions.html#g-print">g_print</a></span> <span class="gtkdoc opt">(</span><span class="string">&quot;Counted %d tags</span><span class="gtkdoc esc">\n</span><span class="string">&quot;</span><span class="gtkdoc opt">,</span> <span class="function">end_counting</span> <span class="gtkdoc opt">(</span>context<span class="gtkdoc opt">));</span>
 
920
 
 
921
  <span class="gtkdoc slc">// else, handle other tags...</span>
 
922
<span class="gtkdoc opt">}</span></pre></td>
923
923
      </tr>
924
924
    </tbody>
925
925
  </table>