Hi,

bagnacauda wrote:
> My input xml file has got a recurring structure "TransactionError" as
> follows:
>  
> ......
>   <TransactionErrorRecords>
>    <TransactionError>
>     <TransactionErrorReference>bbb</TransactionErrorReference>
>     <TransactionErrorMessage>ccc</TransactionErrorMessage>
>    </TransactionError>
>    <TransactionError>
>     <TransactionErrorReference>ddd</TransactionErrorReference>
>     <TransactionErrorMessage>eee</TransactionErrorMessage>
>    </TransactionError>
> .......
>   </TransactionErrorRecords>
>  
> I need to extract the content of the xml file (as a string) between each
> couple <TransactionError>,</TransactionError>, the two tags included.
> So I basically need to be able to populate a string in a loop with
>    <TransactionError>
>     <TransactionErrorReference>bbb</TransactionErrorReference>
>     <TransactionErrorMessage>ccc</TransactionErrorMessage>
>    </TransactionError>
>  
> then with
>  
>    <TransactionError>
>     <TransactionErrorReference>ddd</TransactionErrorReference>
>     <TransactionErrorMessage>eee</TransactionErrorMessage>
>    </TransactionError>
>  
> and so on
>  
> I can identify the nodeset (all TransactionError's) with an xpath
> expression but then how can I get the string value? I've tried to use
> the xpath2.c example as a guide by printing cur->content when
> cur=TransactionError but it won't work.

As noted before, XSLT might be a good option here, depending on what the rest
of your algorithm does.

To write a node to a string, you can use xmlNodeDump or xmlNodeDumpOutput (if
you need encoding) to serialise it to a buffer:

http://xmlsoft.org/html/libxml-tree.html#xmlBufferCreate
http://xmlsoft.org/html/libxml-tree.html#xmlNodeDump
http://xmlsoft.org/html/libxml-tree.html#xmlBuffer
http://xmlsoft.org/html/libxml-tree.html#xmlOutputBuffer

Stefan
_______________________________________________
xml mailing list, project page  http://xmlsoft.org/
[email protected]
http://mail.gnome.org/mailman/listinfo/xml

Reply via email to