Senthil Nathan wrote:
> Hi All,
> I would like to know how to save a part of a DOM tree, by maintaining the
> hierarchy from the root based on an attribute/tag.
> 
> Suppose orig.xml is as below,
> <Root>
>     <Parent>
>          <Child1 Apply="1">
>               <Value>100</Value>
>          <Child2>
>                <Value>0</Value>
>      </Parent>
> </Root>
> 
> I need to save only the nodes which has the flag "Apply" (which means that
> the node's value is changed), along with the complete hierarchy in another
> xml file.
> 
> new.xml would be as,
>  <Root>
>     <Parent>
>          <Child1 Apply="1">
>               <Value>100</Value>
>      </Parent>
> </Root>
> 
> Just I used a simple example here. Actually the original xml file will be
> a large file.
> 
> After identifying the nodes needed using XPATH, I tried using the
> xmlElemDump( ), xmlDocCopyNodeList( )  which gets only the sub tree, not
> with the hierarchy.  Unlinking the nodes also did not work out, as its a
> large file. So, please let me know, is there any libxml-tree or save api's?
> or how can i get this?
> 
> Thanks
> Senthil

Hi Senthil,

I'll only browbeat you about this once, but I really think the best 
approach is XSLT, using libxslt in conjunction with libxml. You can 
accomplish what you want to do with a modified identity transform that 
filters out all of the Child* elements that don't have the Apply 
attribute. Of course, you need to be able to distinguish Child2, which 
you do want to lose, from Parent, which you want to keep, but I assume 
you know how to do that with XPATH.

If you frame this question correctly on the Mulberry Tech XSLT list, 
showing your input and output XML (Fix the xml - the Child elements are 
not valid as shown) and clearly describing the conditionals to be 
applied, people (XSLT experts) will probably write stylesheets for you 
that do the job. They you test them with xsltproc until the stylesheet 
is what you need, then just use libxslt to apply it in your program.

Just my 2 cents.

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

Reply via email to