xsl-list
[Top] [All Lists]

Re: [xsl] Using XSLT to change XML and modify node with XPath

2009-02-05 14:51:34
Hi all,

Maybe anyone can still help me on this:
I need to transform XML1 to XML2.
The procedure i am looking for is something like:
1) i reach the node var-path
2) i meet the node path. I get the value, and i search for /def[name=value]
3) i meet the second node path in current var-path. I get the value,
and now i search for
/def[name=value_of_path_before]//def[value_of_path_now]
4) etc.

So, i use previously found node as starting node now. What is more, i
need to use //, as structure of path can be deeper then explicitly
said. But i can return only first found node (so, if more nodes
satisfy that, i get always the first one).

I have XQuery for searching/modifying nodes. Maybe is it possible to combine it 
(i tried to google some more info, but most tool don't allow that)


XML 1:
<?xml version="1.0" encoding="UTF-8"?>
<xml>
 <def>
    <name>Var1</name>
    <val>0</val>
        <def>
        <name>SubVar</name>
        <val>012</val>
    </def>
 </def>
 <def>
    <name>Var2</name>
    <val>1</val>
 </def>
 <test-node>
        <use>
            <var-path>
                <path>Var1</path>
                <path>SubVar</path>
            </var-path>
        </use>
 </test-node>
</xml>

XML 2:
<?xml version="1.0" encoding="UTF-8"?>
<xml>
 <def>
    <name>Var1</name>
    <val>0</val>
        <def>
        <name>SubVar</name>
        <val>012</val>
    </def>
 </def>
 <def>
    <name>Var2</name>
    <val>1</val>
 </def>
 <test-node>
        <use>
            <var-path>
                <path value="0">Var1</path>
                <path value="012">SubVar</path>
            </var-path>
        </use>
 </test-node>
</xml>

--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--

<Prev in Thread] Current Thread [Next in Thread>