xsl-list
[Top] [All Lists]

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

2009-02-06 05:59:22

Standard XSLT does not provide any way to evaluate an XPath expression that
is read dynamically from a source document as a string value. However, this
facility is often provided as an extension: see for example saxon:evaluate()
and saxon:evaluate-node().

Michael Kay
http://www.saxonica.com/ 

-----Original Message-----
From: kheris [mailto:kheris(_at_)o2(_dot_)pl] 
Sent: 05 February 2009 19:51
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: Re: [xsl] Using XSLT to change XML and modify node with XPath

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>
--~--



--~------------------------------------------------------------------
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>