Using xpath to get parent nodes

hi! i�m trying to copy some elements from a xml file, and i have some problems.
i have this file
?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="xslpath.xsl"?>
<bookstore>
<book id="0">
<title id="pt">Harry Magico</title>
<desc id="1">
<price id="3">29.99</price>
<price1 id="3">329.95</price1>
</desc>
<name>nome</name>
</book>
</bookstore>
i�m using a xsl to copy the nodes.
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="/">
<xsl:copy-of select="/bookstore/book/title/ancestor-or-self::price1"/> <!--not correct-->
</xsl:template>
</xsl:stylesheet>
well, if i select price1 node, what i want to get is:
<?xml version="1.0" encoding="utf-8"?>
<bookstore>
<book id="0">
<desc id="1">
<price1 id="3">329.95</price1>
</desc>
</book>
</bookstore>
i just want copy the node without is "brothers" :) and with is parents.
can anyone help me?

hi! i�m trying to copy some elements from a xml file,
and i have some problems.
i have this file
?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl"
href="xslpath.xsl"?>
<bookstore>
<book id="0">
<title id="pt">Harry Magico</title>
<desc id="1">
<price id="3">29.99</price>
<price1 id="3">329.95</price1>
</desc>
<name>nome</name>
</book>
</bookstore>
i�m using a xsl to copy the nodes.
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:template match="/">
<xsl:copy-of
select="/bookstore/book/title/ancestor-or-self::price
"/> <!--not correct-->
</xsl:template>
l:stylesheet>
well, if i select price1 node, what i want to get
is:
<?xml version="1.0" encoding="utf-8"?>
<bookstore>
<book id="0">
<desc id="1">
<price1 id="3">329.95</price1>
</desc>
</book>
</bookstore>
i just want copy the node without is "brothers" :)
and with is parents.
can anyone help me?right off my head, try this:
/bookstore/book/title/desc/price1/ancestor-or-self::*

Similar Messages

  • Getting Parent Node using SQL

    Hello,
    I am trying to query an XML which is stored in XMLTYPE datatype column in oracle table. I am using the below SQL:
    select
    EXTRACTVALUE (column_name, '/Person/Customer/Customer_First_Name'),
    EXTRACTVALUE (column_name, '/Person/Customer/Customer_Last_Name'),
    from TABLE_1 A, TABLE ( XMLSEQUENCE (EXTRACT (A.column_name, '/sdi_header//Person')) ) P
    Sample XML:
    <sdi_header>
    <Person>
    <Customer_First_Name>ABC</Customer_First_Name>
    <Customer_Last_Name>DEF</Customer_First_Name>
    </Person>
    <warehouse>
    <Person>
    <Customer_First_Name>XYZ</Customer_First_Name>
    <Customer_Last_Name>MNO</Customer_First_Name>
    </Person>
    </warehouse>
    </sdi_header>
    In the above query the Alias P has a //Person which means I am trying to extract all the repeating person Nodes information in XML. Retrieving all persons is working but I want to extract the parent node information of each Person like for Example in the above sample XML, it has two persons in it
    1) 1 Person is coming under sdi_header node , in such case I need to get <sdi_header/> in SELECT statement
    2) 1 Person is coming under warehouse node , in such case I need to get <warehouse/>in SELECT statement
    How can the parent node information be extracted in SELECT statement.
    Any suggestion/Help is much appreciated.
    Thanks,
    SKM
    Edited by: user9116854 on Mar 1, 2010 10:24 AM
    Edited by: user9116854 on Mar 1, 2010 10:30 AM
    Edited by: user9116854 on Mar 1, 2010 10:35 AM
    Edited by: user9116854 on Mar 1, 2010 10:45 AM
    Edited by: user9116854 on Mar 2, 2010 8:05 AM

    Sounds like you are looking for something like this
    Connected to Oracle Database 11g Enterprise Edition Release 11.1.0.6.0
    SQL> WITH table_1 AS
      2  (SELECT XMLTYPE('<sdi_header>
      3  <Person>
      4  <Customer_First_Name>ABC</Customer_First_Name>
      5  <Customer_Last_Name>DEF</Customer_Last_Name>
      6  </Person>
      7  <warehouse>
      8  <Person>
      9  <Customer_First_Name>XYZ</Customer_First_Name>
    10  <Customer_Last_Name>MNO</Customer_Last_Name>
    11  </Person>
    12  </warehouse>
    13  </sdi_header>') column_name
    14     FROM dual)  -- WITH simulates your table I do not have
    15  select t1.*
    16    from TABLE_1,
    17         XMLTABLE('for $i in /sdi_header//Person
    18                     return <root>
    19                           {$i/Customer_First_Name,
    20                           $i/Customer_Last_Name}
    21                           <parent>{$i/../name()}</parent>
    22                      </root>'
    23                  PASSING table_1.column_name
    24                  COLUMNS
    25                  fname   VARCHAR2(20) PATH 'Customer_First_Name',
    26                  lname   VARCHAR2(20) PATH 'Customer_Last_Name',
    27                  pnode   VARCHAR2(20) PATH 'parent') t1;
    FNAME                LNAME                PNODE
    ABC                  DEF                  sdi_header
    XYZ                  MNO                  warehouseYou can find out how formatted that message by looking in the FAQ in the upper right. It uses the { code } tag (without spaces).

  • How to get Parent nodes and corresponding child nodes in BI Hierarchy

    Hi all,
    I have a standard function module 'RSNDI_SHIE_STRUCTURE_GET3'  to get child node if i pass parent node. But I need child nodes along with the provided parent node as I use this in a loop in BI.
    Thanks

    Could any one help me in this regards .
    Thanks in advance
    Regards,
    sri

  • Get Parent node from Base member

    Hi ,
    My user select base member from CV .
    I want parent node for that base member .
    I am using =EVPRO( App name , memmber id , "PARENTH1" ) .
    I am not getting parent member from this funcation .
    Pls let me know any other way for this ?
    regards,
    PSR

    Hi,
    EVPRO for getting the value for PARENTH1 of any member should work. Please check whether you have included all the parameters of this function inside double quotes.
    EVPRO("APPNAME","MEMBER_ID","PROPERTY")
    Hope this helps,
    Regards,
    G.Vijaya Kumar

  • Getting Parent Node On tree Issue..

    Hi,
    I Have Constructed a Tree and i am Able to get the Details of the clicked Node on the Tree into the Backing Bean.
    But I'm unable to get the Parent Node of the Clicked Child Node.
    Ex:On Click of Employee(Child Node) in the Tree, I should get the Department (Parent Node) in Backing Bean.
    I'm able to get only the details in the same Level of Tree Node(ie All Employees in the Selected Employee Level).
    IDE: JDeveloper 10.1.3.2.
    Please Suggest me.
    Thanking You,
    Bandaru.

    Sounds like you are looking for something like this
    Connected to Oracle Database 11g Enterprise Edition Release 11.1.0.6.0
    SQL> WITH table_1 AS
      2  (SELECT XMLTYPE('<sdi_header>
      3  <Person>
      4  <Customer_First_Name>ABC</Customer_First_Name>
      5  <Customer_Last_Name>DEF</Customer_Last_Name>
      6  </Person>
      7  <warehouse>
      8  <Person>
      9  <Customer_First_Name>XYZ</Customer_First_Name>
    10  <Customer_Last_Name>MNO</Customer_Last_Name>
    11  </Person>
    12  </warehouse>
    13  </sdi_header>') column_name
    14     FROM dual)  -- WITH simulates your table I do not have
    15  select t1.*
    16    from TABLE_1,
    17         XMLTABLE('for $i in /sdi_header//Person
    18                     return <root>
    19                           {$i/Customer_First_Name,
    20                           $i/Customer_Last_Name}
    21                           <parent>{$i/../name()}</parent>
    22                      </root>'
    23                  PASSING table_1.column_name
    24                  COLUMNS
    25                  fname   VARCHAR2(20) PATH 'Customer_First_Name',
    26                  lname   VARCHAR2(20) PATH 'Customer_Last_Name',
    27                  pnode   VARCHAR2(20) PATH 'parent') t1;
    FNAME                LNAME                PNODE
    ABC                  DEF                  sdi_header
    XYZ                  MNO                  warehouseYou can find out how formatted that message by looking in the FAQ in the upper right. It uses the { code } tag (without spaces).

  • HOw to get parent node name value through its child node?

    Hi,
    Experts,
    I am able to get child node name values but according to attribute name value i want to  get its parent name value how to achieve that. For that i have used If_Ixml_element->Get_parent. Please pass some idea on it.
    Thanks in advance,
    Shabeer ahmed.

    Hello Shabeer
    I think the coding should be straightforward:
    DATA: lo_element   TYPE REF TO if_ixml_element,
              lo_child        TYPE REF TO if_ixml_node,
              lo_parent      TYPE REF TO if_ixml_node.
    " NOTE: LO_ELEMENT holds your child node
      lo_child ?= lo_element.
      lo_parent = lo_child->get_parent( ).
    Regards
      Uwe

  • Using XPath to create Document node

    Hi, could anyone suggest how to create Document nodes using xpaths with the help of some api (dom4j, JAXP, etc)?
    For example:
    With xpath="//A/B", I need to produce:
    <A>
    <B>.. </B>
    </A>
    XPath is usually used for querying XML document, but now I need to do the reverse.
    Thanks.

    DrClap, thanks for your reply.
    Yes, the topic title is a bit misleading. I shouldn't call it "Document" node.
    "And you have an XPath expression of a very restricted form which is supposed to describe the structure of that document."
    Not really, what I have is a bunch of xpath expressions, each of them describe a element in a xml.
    With these xpath expressions, in the end of the day I need to create a xml document with these elements.
    For example, if I have
    //A/B
    //A/C
    //A/D
    I need to create a xml like this:
    <A>
    <B> ...</B>
    <C>....</C>
    <D>.....</D>
    </A>
    While I could do this in a manual way (creating each element from the root and adding children one by one....), I'm sure dom4j (or other packages) can do this but I couldn't find how.

  • Issue using extractval to get the node value when there is namespace

    I created the db with a XMLType column:
    CREATE TABLE mytable1 (key_column VARCHAR2(10) PRIMARY KEY, xml_column1 XMLType);
    Then inserted one row:
    INSERT INTO mytable1 (key_column,xml_column1) VALUES ('test', XMLType('<MY_TEST xmlns="http://xmlns.oracle.com/ku" version="1.0">
    <SCHEMA>SYSTEM</SCHEMA>
    <NAME>TABLE41</NAME>
    <TEST_GROUP>TEST_GRP_RMP</TEST_GROUP>
    <TEST_NAME>DEPARTTEST</TEST_NAME>
    <FUNCTION_SCHEMA>SYSTEM</FUNCTION_SCHEMA>
    <TEST_FUNCTION>EXCLUDE_TABLE</TEST_FUNCTION>
    <STATEMENT_TYPE_LIST>
    <STATEMENT_TYPE_LIST_ENTRY>
    <NAME>SELECT</NAME>
    </STATEMENT_TYPE_LIST_ENTRY>
    </STATEMENT_TYPE_LIST>
    <UPDATE_CHECK>Y</UPDATE_CHECK>
    <ENABLE>Y</ENABLE>
    <STATIC_POLICY>N</STATIC_POLICY>
    <TEST_TYPE>DBMS_RLS.DYNAMIC</TEST_TYPE>
    <LONG_PREDICATE>N</LONG_PREDICATE>
    </MY_TEST>'));
    Then I ran:
    select extractValue(xml_column1,'MY_TEST/TEST_NAME') policy from mytable1;
    There is nothing returned.
    If i do not have "xmlns="http://xmlns.oracle.com/ku" " in MY_TEST node, then the correct value returned.
    Please advise how could I get the node value when there is namespace? Thanks.

    This is a known issue. In the third parameter of extractvalue, set the namesapce. Then it works.

  • Hierarchy  Query  to  get  parent  nodes?

    Hi Everyone,
    I want to write a hierarchy query which should give me the path starting from given node to its parents(Grand parents). below is the sample data and the output what i am expecting. and also the output what i am getting right now from my query.
    CREATE TABLE RELATION (PARENT VARCHAR2(5),CHILD VARCHAR2(5) PRIMARY KEY);
    --Data for the tree which starts from the root 'A'
    Insert into RELATION (PARENT, CHILD) Values (NULL,'A');
    Insert into RELATION (PARENT, CHILD) Values ('A', 'B');
    Insert into RELATION (PARENT, CHILD) Values ('A', 'C');
    Insert into RELATION (PARENT, CHILD) Values ('B', 'D');
    Insert into RELATION (PARENT, CHILD) Values ('B', 'E');
    Insert into RELATION (PARENT, CHILD) Values ('D', 'F');
    Insert into RELATION (PARENT, CHILD) Values ('C', 'G');
    --Data for the tree which starts from the root 'H'
    Insert into RELATION (PARENT, CHILD) Values (NULL,'H');
    Insert into RELATION (PARENT, CHILD) Values ('H', 'I');
    Insert into RELATION (PARENT, CHILD) Values ('H', 'J');
    Expected Output by passing values as 'F' which gives the path from bottom to up.
    A<-B<-D<-F
    My Query:
    SELECT substr(sys_connect_by_path(child,'<-'),3)
    FROM relation
    WHERE connect_by_isleaf = 1
    START WITH child = 'F'
    CONNECT BY PRIOR parent = child
    ORDER BY child;
    Output of my query:
    F<-D<-B<-A
    I am getting the output in reverse order. i can use the reverse string function to reverse the string but the problem is the node can also contain the values like 'AC' 'BA'.. in future.
    Can anyone please help me in getting the correct output.
    Thank you in advance.

    I like ListAgg :D
    with RELATION(PARENT,CHILD) as(
    select NULL,'A' from dual union all
    select 'A', 'B' from dual union all
    select 'A', 'C' from dual union all
    select 'B', 'D' from dual union all
    select 'B', 'E' from dual union all
    select 'D', 'F' from dual union all
    select 'C', 'G' from dual union all
    select NULL,'H' from dual union all
    select 'H', 'I' from dual union all
    select 'H', 'J' from dual)
    SELECT ListAgg(child,'<-')
           within group(order by Level desc) as revPath
    FROM relation
    START WITH child = 'F'
    CONNECT BY PRIOR parent = child;
    revPath
    A<-B<-D<-F

  • Re: Hierarchy  Query  to  get  parent  nodes?

    Guys i need a help here please....
    i want to query using any single value for example in where clause for  "E" , i want to retrieve whole bunch from "A" to "G" which are all interlinked. is there any way for  this?..
    im lookking like
    A
    B
    C
    D
    E
    F
    G
    when i query for "E"
    Thanks in advance..

    sorry,,, i couldn't explain properly...
    here is the example...
    CREATE TABLE RELATION (PARENT VARCHAR2(5),CHILD VARCHAR2(5) PRIMARY KEY);
    ---this is group 1
    Insert into RELATION (PARENT, CHILD) Values ('A', 'B');
    Insert into RELATION (PARENT, CHILD) Values ('A', 'C');
    Insert into RELATION (PARENT, CHILD) Values ('B', 'D');
    Insert into RELATION (PARENT, CHILD) Values ('B', 'E');
    Insert into RELATION (PARENT, CHILD) Values ('D', 'F');
    Insert into RELATION (PARENT, CHILD) Values ('C', 'G');
    --This is group 2
    Insert into RELATION (PARENT, CHILD) Values ('H', 'I');
    Insert into RELATION (PARENT, CHILD) Values ('H', 'J');
    Insert into RELATION (PARENT, CHILD) Values ('J', 'K');
    Insert into RELATION (PARENT, CHILD) Values ('K', 'M');
    I WILL TAKE  group 1 ..
    i want from relation table single  column all related falling in one group . like..
    when i look for E i should get all the below..
    A
    B
    C
    D
    E
    F
    G
    even though E is not directly linked to A it is linked through B. basically all in one group but the link is not direct. i dont have any group key in my table..
    the query column (where clause) can be either parent or child..
    hope u will gettit..   thanks for ur patience...

  • SRM Get parent node

    Dear experts,
    I need to know a FM or BAPI in order to know the parent objetc/record/document that contains an element.
    SAP provides the BAPI BAPI_RECORD_GETELEMENTS to get the elements of a record, but I need the opposite operation (get the record that contains the element).
    Thanks in advance.
    Best regards,
    A. Cepa

    Hi,
    EVPRO for getting the value for PARENTH1 of any member should work. Please check whether you have included all the parameters of this function inside double quotes.
    EVPRO("APPNAME","MEMBER_ID","PROPERTY")
    Hope this helps,
    Regards,
    G.Vijaya Kumar

  • Problem with Jtree to xml tranform..how to set/get parent of a node?

    Hi,
    I am trying to develop xml import/export module.In import wizard, I am parsing the xml file and the display it in Jtree view using xml tree model which implements TreeModel and xml tree node.I am using jaxp api..
    It is workin fine.
    I got stuck with removal of selected node and save it as a new xml.
    I am not able to get parent node of selected node in remove process,itz throwing null.I think i missed to define parent when i load treemodel.Plz help me out..give some ideas to do it..
    thanks
    -bala
    Edited by: r_bala on May 9, 2008 4:44 AM

    there's no way anyone can help you without seeing your code.

  • Using xpath.evaluate(): xpath exp with multiple namespaces

    Hi,
    I have to evaluate a xpath expression with parent node and child node having different namespaces. Like : env:parent/mig:child.
    I have set the namespacecontext for the child node[i.e., for the prefix 'mig'.]
    But am getting this error :
    javax.xml.transform.TransformerException: Prefix must resolve to a namespace: env
    How can I set the namespace context for both the parent and child nodes? Or is there are any other way of doing it?
    I cant use //mig:child as the requirement needs the whole xpath expression [env:parent/mig:child] to be given as input for the xpath.evaluate() method.
    Here's the code :
    File file = new File("D:\\Backup\\XMLs\\test.xml");
    Document xmlDocument = builder.parse(file);
    XPath xpathEvaluator = XPathFactory.newInstance().newXPath();
    xpathEvaluator.setNamespaceContext(new NamespaceContextProvider("env", "http://xmlns.oracle.com/apps/account/1.0"));
    NodeList nodeList =
    (NodeList)xpathEvaluator.evaluate("/env:parent/mig:child", xmlDocument,
    XPathConstants.NODESET);
    xpathEvaluator.setNamespaceContext(new NamespaceContextProvider("mig", "http://xmlns.oracle.com/apps/account/1.0"));
    Thanks in advance.

    If you want, I can help you tomorrow. Call me at my nieuwegein office or mail me at marco[dot]gralike[at]amis[dot]nl
    I have some time tomorrow, so I can help you with this. My next presentation for UKOUG will be on XML indexes strategies anyway...
    In the meantime and/or also have a look at:
    XML Howto's (http://www.liberidu.com/blog/?page_id=441) specifically:
    XML Indexing
    * Unstructured XMLIndex (part 1) – The Concepts (http://www.liberidu.com/blog/?p=228)
    * Unstructured XMLIndex (Part 2) – XMLIndex Path Subsetting (http://www.liberidu.com/blog/?p=242)
    * Unstructured XMLIndex (Part 3) – XMLIndex Syntax Dissected (http://www.liberidu.com/blog/?p=259)
    * Unstructured XMLIndex Performance and Fuzzy XPath Searches (http://www.liberidu.com/blog/?p=310)
    * Structured XMLIndex (Part 1) – Rules of Numb (http://www.liberidu.com/blog/?p=1791)
    * Structured XMLIndex (Part 2) – Howto build a structured XMLIndex (http://www.liberidu.com/blog/?p=1798)
    * Structured XMLIndex (Part 3) – Building Multiple XMLIndex Structures (http://www.liberidu.com/blog/?p=1805)
    The posts were based on Index for XML with Repeated Elements maybe that is a bit better to read than on my notepad on the internet (aka blog)
    Edited by: Marco Gralike on Oct 28, 2010 7:51 PM

  • Xpath to access a node - problems with namespace

    Iam using xpath to get to a node of a DOM doc, it works fine as long as I don't set the DocumentBuilderFactory to be namespace aware. Do I have to change the xpath to be different if the facotory is namespace aware?
    Thanks

    guys ?

  • Using XPath with the XML DOM

    I have just started to use the XML DOM API. One thing I cannot see yet is an easy way to use XPath to get the value of an element.
    What I would like to do is pass an XPath expression like this:
    \EDIFACT\ORDERS\NAD[2]\NAD01\NAD0102
    into a method, and get the value of the element returned to me.
    Does anybody know if there is a method of one of the DOM interfaces that would provide that kind of functionality, or am I going to have to traverse the nodes of the DOM tree manually to do this?
    BR,
    Tony.

    Hi Tony,
    I read your posted question - I have the same problem.
    I think that the method find_from_path_ns (or find_from_path) is the only "xpath"-like way to get a value.
    BUT the syntax is very limited so you cannot use all good features of xpath
    To traverse the nodes manually is (in my problem) unpractible - the xml-structures are different and it's horrible to traverse the tree.
    I need xpaths like ' //x/y[3]/z[a='MS']' . I know, the performance is not very good but for small XML-messages fast enough
    Do you have any solutions?
    regards
    Wolfgang Hummel

Maybe you are looking for

  • Can you see game center games?

    Good afternoon all!!! This is simply a place to input our experience with Game Center... My experience is that I was successful at starting the account with my current apple id, but I am not seeing any games in the "Games" section. When I touch the "

  • Bluescreen/Desk Top Navigator issues

    New computer, less than 3 months old, I am suddenly having shut down issues and the desktop navigator is not responding...I am a novice.. New Bitdefender 2010 anti virus software installed recently, also Skype. Have uninstalled Skype, has not helped

  • GLITCH WITH IPHONE BLUETOOTH IN CAR

    WHEN I'M DRIVING AND THE BLUETOOTH IN MY CAR IS ON, I ALWAYS GET AN "ECHO" EFFECT WHEN I MAKE CALLS AND CALLS COME IN. IT'S BECAUSE THE PHONE'S MICROPHONE IS CATCHING MY VOICE ON TOP OF THE BLUETOOTH MICROPHONE IN THE CAR. THIS IS A HUGE PROBLEM WHEN

  • How can I view 2 active windows within a program simultaneously?

    Using Windows programs on a PC, I could often use the "Window" menu to access the commands (something like) "Tile Vertical" or "Tile Horizontal" to view 2 active windows within a program on the screen simultaneously with a click or 2 of the mouse. I

  • Pure Music software player is not working with iTunes 10.4 and Lion 10.7 playing wav. files.

    Pure Music player from Channel D software will not work when playing wav. files after updating to Lion OS. I can open the application as usual but after playing one song it will not advance to the next track either on its own or manually. The scrolli