Want to get id's value using xpath.

Hi all,
I want to get id attribute's value using xpath.
my xml file as follows:
<book>
     <person id="1">
            <first id="2">Kiran</first>
            <last id="3">Pai
                    <name id="4">das</name>
            </last>
            <age id="5">22</age>
     </person>
     <person id="6">
            <first id="7">Bill</first>
            <last id="8">Gates</last>
            <age id="9">46</age>
     </person>
     <person id="10">
            <first id="11">Steve</first>
            <last id="12">Jobs</last>
            <age id="13">40</age>
     </person>
</book>I want to get the id value of name. using xpath-->//book[0]/person[0]/last[0]/name[0]/[@id]..is this a valid xpath to get the id's value? my java code as follows:
import java.io.File;
import java.util.HashMap;
import java.util.Map;
import java.util.Stack;
import javax.xml.parsers.*;
import javax.xml.xpath.*;
import org.w3c.dom.Document;
import org.xml.sax.*;
import org.xml.sax.helpers.DefaultHandler;
public class Evaluate {
     public static void main(String[] args) {
          String xp = "//book[0]/person[0]/last[0]/name[0]"+"/[@id]";
          String id="";
      try{
           // parse the XML as a W3C Document
          DocumentBuilderFactory docBuilderFactory = DocumentBuilderFactory.newInstance();
        DocumentBuilder docBuilder = docBuilderFactory.newDocumentBuilder();// Create the parser
        Document doc = docBuilder.parse(new File("book.xml"));
         XPath xpath = XPathFactory.newInstance().newXPath();
         doc.getDocumentElement().normalize();
         XPathExpression xPathExpression = xpath.compile(xp);//-->getting error here
         id=xPathExpression.evaluate(xp).toString();
         id=xPathExpression.evaluate("person");
         System.out.println("id=" +id);
              System.out.println("xp=" +xp);
              }catch(Exception err){
                System.out.println("Errpr= "+ err);
can anyone please help me ?

No, I believe that XPath indexes begin with 1, not with zero.

Similar Messages

  • I have a Ipod Nano and want to get another one , and use both. Can I use the same computer and library for both?

    I have a Ipod Nano and want to get another one , and use both. Can I use the same computer and library for both?

    Yes

  • I want to get another 4s and use it not as a phone, but only as a video camera and editor and hook it up only with wifi. i would sync it to itunes so i can pay for apps and upload. would this work, or must it be connected to a phone carrier?

    I want to get another 4s and use it not as a phone, but only as a video camera and editor and hook it up only to wifi. i would sync it to itunes so i can pay for apps and upload. would this work, or must it be connected to a phone carrier?

    Trust me when I say this coming from 20 years of experience.
    Get a powered external drive, format it 1 Partition Option: GUID and OS X Extended Journed as the format in Disk Utility.
    Download and install Carbon Copy Cloner, clone internal drive to external drive.
    Set a schedule to remind you to do it at least once a week, keep it near your charger.
    When you plug your charger in, do plug the clone and power the machine up, set the display to sleep only,
    CCC will do the rest.
    If you want to boot from it, hold the option/alt and select it Startup Manager.
    I've seen many TimeMachine and TimeCapsule nightmares and so far haven't seen a problem from anyone using a bootable clone.
    It's simple, it's easy, it's more reliable and more powerful than what Apple does and it only takes plugging in a extra cable.
    Make as many clones as you want, keep them time seperated, off site etc. etc.
    Cables don't have network issues, clones can be verified in seconds merely by booting from them.
    Clones protect your productivity, your up in seconds on a clone despite even the hard drive dying.
    Software problem? No sweat, boot of the clone and reverse clone your problems away.
    If you want to fuss and muss with half implemented TimeMachine and TimeCapsule network headaches then prepare to suffer.
    I don't like to suffer, I bought a Mac not to suffer, but it appears you do with TimeMachine and TimeCapsule.
    Most commonly used backup methods

  • How to get Metadata column values using powershell(CSOM)

    Hi,
    I am trying to get list column values using Powershell (CSOM), but I am getting for Metata data columns.
    I am getting internal value as System.Collections.Generic.Dictionary`2[System.String,System.Object] 
    Can anybody let me know how to get the values for metadata columns?
    Any help would be greatly appreciate.
    Thank you.
    AA.

    Hi
    Go through the links. It'll help.
    SharePoint 2013 Code Tips – Setting a Managed Metadata Field with the Client Object Model(CSOM and JSOM)
    Indul Hassan
    Microsoft Community Contributor
    http://www.indulhassan.com
    You Snooze.. You Lose !!

  • How to get STPOV structure values using BOM number and Plant number

    hello All,
    could you please help me out
    'How to get  STPOV structure values using BOM number and Plant number'
    is there any function module where can i give input as bom and plant number .
    waiting for your response.
    regards
    srinivas

    I did a quick where-used lookup in SE11 on the structure STPOV in function module interfaces and came up with the following:
    Function Module                             Short Description                                          
    CK_F_TOTALCOST_COMPUTE                                                                      
    CS_ALT_SELECT_COUPLED_PRODUCT                                                               
    CS_WHERE_USED_CLA                Bills of material; class use                               
    CS_WHERE_USED_CLA_ANY        Bills of material; direct class use or via other class     
    CS_WHERE_USED_CLA_VIA_CLA        Bills of material; class use via classes                   
    CS_WHERE_USED_COP                                                                           
    CS_WHERE_USED_DOC                Bills of material; document use                            
    CS_WHERE_USED_DOC_ANY:Bills of material; direct and (indirectly) document use via
    CS_WHERE_USED_DOC_VIA_CLA        Bills of material; document use via classes                
    CS_WHERE_USED_KNO                Bills of material; use object dependency                   
    CS_WHERE_USED_MAT                Bills of material; where-used list                         
    CS_WHERE_USED_MAT_ANY:Bills of material; where-used list as article or class item
    CS_WHERE_USED_MAT_VIA_CLA        Bills of material; where-used list via classes             
    EXIT_SAPMC29M_001                BOM; Article Where-Used List   
    It appears that this structure is primarily used for where-used look-ups for components within the BOM.  I don't know if any of these are what you're in need of.
    Hope this helps,
    Mark Schwendinger

  • Extract Node Values using XPATH

    This may be a repeat question.
    No offence meant
    I am using XPATH to extract values from the nodes.
    I need to extract the value of i:RequestedBy Node using XPATH
    <?xml version="1.0" encoding="UTF-8"?>
    <i:Interest>
    <i:Status>0</i:Status>
    <i:Generation>2</i:Generation>
    <i:Details xsi:type="i:vanilla.details.stock">
       <i:RequestedBy>AA.MM</i:RequestedBy>
    The above XML is of type Document
    Document msgDoc;
    XPath xpath = XPathFactory.newInstance().newXPath();
    XPathExpression expr;
    Object result=null;
         try {
                  expr = xpath.compile("i:Interest/i:Details/i:RequestedBy/text()");
                  result = expr.evaluate(msgDoc, XPathConstants.NODESET);
               NodeList nodes = (NodeList) result;
                for (int i = 0; i < nodes.getLength(); i++) {
                 System.out.println(nodes.item(i).getNodeValue());
         } catch (XPathExpressionException e1) {
         e1.printStackTrace();
                             I am getting null/
    Is my XPATH correct?

    I don't know if your XPath is correct or not. Your XML is not well-formed because the namespace declarations are missing. And I don't see where you set the namespace context for your XPath object; that is quite likely why it doesn't do what you want.

  • User wants to get the cumulative values based on his input.

    Hi
    I am working one FI Report; the out put values are Cumulative values for Current, Previous years. I developed and it fetches the data last 3 years Cumulative year’s data without any input FYMonth based on SAPexits and varible offsets. But user wants to put Fiscal year Month as input. So he wants get the cumulative values based on his input. For example, If his input SEP'2005(062005), Then Query gives the Output Cumulative Value (I.e., Sum of Total values of Form APR'2005 to SEP'2005)
    Please provide the solution…
    Thanks
    Mannev

    Mannev,
    You can try doing this.
    1. If the user input is fiscal period(2005006) , you can create a customer exit variable which will take the user value (i_step =2), and change the variable value to 20005001. (this is a simple code where tye last 2 digits are replaced by 01).
    if the user is entering calmonth, you can use FM - DATE_TO_PERIOD_CONVERT, to convert the month to fiscal period.
    2. You can create a rkf with restrictions on time char based on the customer exit variable and the user entered variable.
    -Saket

  • Issue in getting current row value using getCurrent Value

    Issue:When I call ththe method executeSearchVO from controller class
    with Row row = personalActionSearchVO.first();
    I am getting the corresponding value.
    but my requirement is I have multiple record , If i press action on any of the record, I need to read SITName value for the particular record and need to pass it as parameter to other pager(i mean If i select any record, I need to get corresponding value in the attribute for the record.)
    if i comment personalActionSearchVO.first(); i am getting null pointer exception.
    Pl. helpme how to get current row instead of first row always.
    AMIMPL Clause
    public void executeSearchVO(String loginPersonId)
    XXHRPersonalActionSearchVOImpl personalActionSearchVO =getXXHRPersonalActionSearchVO1();
    personalActionSearchVO.initQuery(loginPersonId);
    // Row row = personalActionSearchVO.first();
    row = personalActionSearchVO.getFirstFilteredRow("action","1");
    Row masterRow = row;
    personalActionSearchVO.setCurrentRow(masterRow);
    OARow Row1 = (OARow)personalActionSearchVO.getCurrentRow();
    System.out.println("Org "+Row1.getAttribute("Organization"));
    calling this method from controller clause
    if("action".equals(pageContext.getParameter(EVENT_PARAM)) )
    System.out.println("Person Id "+ pageContext.getParameter("XXHRPersonId"));
    Serializable methodParams[] = {pageContext.getEmployeeId()+""};
    applicationModule.invokeMethod("executeSearchVO",methodParams);
    need it urgently. pl. help
    thanks
    siva

    Timo,
    I am new to Jdevloper. I will explain the issue in detail.
    Version: Oracle 9i Jdeveloper
    I have a query page with multiple records. when I perform action , I need to pass 2 parameters from query screen to my actual page.
    1 parameter is Login person Id,. Now the issue is with getting current value for 2nd paramenter. 2nd Parameter will be changed depends upon record i am choosing in my query page: column is : Information Name.
    when I use getcurrentrow , I am getting null pointer exception.
    My controller class when I click action button :
    if("action".equals(pageContext.getParameter(EVENT_PARAM)) )
    Serializable methodParams[] = {pageContext.getEmployeeId()+""};
    applicationModule.invokeMethod("executeSearchVO1",methodParams);
    {color:#993300}
    // Here I need to get InformationName value based on the record I am choosing{color}
    HashMap hashMap = new HashMap(2);
    hashMap.put("XXHRPersonId", pageContext.getParameter("XXHRPersonId"));
    // hashMap.put("InformationName", methodParams);
    pageContext.forwardImmediately(
    "OA.jsp?page=/xxhr/oracle/apps/xxhr/selfservice/personalaction/webui/XXHRPersonalActionPG",
    null,
    OAWebBeanConstants.KEEP_MENU_CONTEXT,
    null,
    hashMap,
    true, // Retain AM
    OAWebBeanConstants.ADD_BREAD_CRUMB_NO
    my AMIMPL Clause :
    I am just pasting whatever I have tried. Pl. suggest me If my code is wrong.
    *{color:#993300}I need to get current row information value from the below method*
    *{color}*
    public void executeSearchVO1(String loginPersonId)
    XXHRPersonalActionSearchVOImpl personalActionSearchVO =getXXHRPersonalActionSearchVO1();
    personalActionSearchVO.initQuery(loginPersonId);
    System.out.println("Row count "+personalActionSearchVO.getRowCount());
    // Row row = personalActionSearchVO.first();
    Row row = personalActionSearchVO.getCurrentRow();
    System.out.println("Informaton Name "+row.getAttribute("InformationName");
    In this , If i initialzie with Row row = personalActionSearchVO.first();I am able to get value for my column Information Name.
    whereas, if I use directly Row row = personalActionSearchVO.getCurrentRow();, i am getting null pointer exception.
    Pl. let me know how to get current row value for Information Name.
    Looking for the reply at the earliest.
    Thanks
    siva

  • Want to get "Base Type" value in Delivery

    Hi,
    I would like to get  "Base Type" value when create Delivery (Copy from Sales Order).
    The following is my code:
    Dim oOrderMat As SAPbouiCom.Matrix
    Dim oColumns As SAP bouiCom.Columns
    Dim oKeyColumn As SAPbouiCOM.Column
    Dim oKeyValue As String
    oOrderMat=oForm.Items.Item("38").Specific
    oColumns=oOrderMat.Columns
    For i=1 to oOrderMat.RowCount()-1
    oTypeColumn=oColumns.Item("43")
    oTypeValue=oTypeColumn.Cells.Item(i).Specific.Value()
    However, when i use the same way to retrieve the value of "Base Key" or "Base Row" which is perfectly fine.  The following is the error message.
    Error Message:
    error: System.MissingMemberException:Public member 'value' on type 'IComboBox' not found.
    at
    Microsoft.VisualBasic.CompilerServices.LateBinding.LateGet(Object o,Type objType, String name, Object[] args, String[] paramnames, Boolean[] CopyBack)
    at
    Project1.CatchingEvents.SBO_Applicaton_FormDataEvent(BusinessObjectInfo&BusinessObjectInfo,Boolean&BubbleEvent)in
    Please help
    Regards,
    Anna

    Hi Anna,
    looks like that column is a combobox
    try:
    oTypeValue=oTypeColumn.Cells.Item(i).Specific.Selected.Value
    lg David

  • Selcect/ update attribute value using xpath navigator/ linq to xml

    Hi Folks,
    below is my xml string and the highlighted bold attribute value needs to update. Since this element contains prefix im not able to select teh particular element. if i remove the prefixx im able to select but i need to keep prefix.
        <IOP:MtvnSvcReq xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:IOP="mtvnCWExternInteropReq" xmlns:IOP1="mtvnExtInteropReqData" xmlns:PR1="mtvnPRInteropReqData">
                              <IOP:Svc>
                                                 <IOP1:PR1>
                                                       <PR1:PRExternSSOReqData>
    <PR1:UserId>abcd</PR1:UserId>
                                                       </PR1:PRExternSSOReqData>
                                                 </IOP1:PR1>
                                </IOP:Svc>
                        </IOP:MtvnSvcReq>
    Thanks 

    Hi Pulikk,
    Do you mean you want  to change the attribute value(abcd)? If so,
    Please try the following code, i tested on my side, it changed successfully.
    //Here is the variable with which you assign a new value
    string newValue = string.Empty;
    XDocument objDoc = XDocument.Load(@"yourdata.xml");
    XNamespace IOP = "mtvnCWExternInteropReq";
    XNamespace IOP1 = "mtvnExtInteropReqData";
    XNamespace PR1 = "mtvnPRInteropReqData";
    foreach (var node in objDoc.Descendants(PR1 + "UserId"))
    node.Value = newValue;
    objDoc.Save(@"yourdata.xml");
    Have a nice day!
    Kristin
    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click
    HERE to participate the survey.

  • Getting Top N Value using SQL

    There are thousands of records in a table. The table has column TOTAL_NUMBER. I want to find the top 3rd using the column TOTAL_NUMBER. How can I do this using SQL?

    Google:
    Using RANK() to Obtain a Top-N Query
    To obtain a top-N query, use RANK() in a subquery and then apply a filter condition outside the subquery:
    SELECT Empno, Ename, Job, Mgr, Hiredate, Sal
    FROM
    (SELECT Empno, Ename, Job, Mgr, Hiredate, Sal,
    RANK() OVER
    (ORDER BY SAL Desc NULLS LAST) AS Emp_Rank
    FROM Emp
    ORDER BY SAL Desc NULLS LAST)
    WHERE Emp_Rank < 6;

  • Get form field value using an offset

    I have a Form created using Perl that has a table with a row for each invoice in a large table. I display all the rows in a table and allow the user to edit some info for each record:
    for ($item_cntr = 0; $cntr < $record_cnt; ++$item_cntr)
    { print qq(<tr>
    <td><input type="text" name="c_freight_$item_cntr" value="$i_freight[$item_cntr]" onBlur="linetotal($item_cntr)" ></td>
    <td><input type="text" name="c_miscamt_$item_cntr" value="$i_miscamt[$item_cntr]" ></td>
    <td><input type="text" name="c_price_$item_cntr" value="$i_price[$item_cntr]" ></td>
    </tr>);
    I want to create a Function that is called when they change the Freight value and that causes the rows total Price (freight + miscamt = price) to be calculated again (without hitting a Submit button on the Form).
    I created a Function:
    function linetotal(whatline) {
         var fixed_freight = "document.editform.c_freight_" + whatline;
         var fixed_misc = "document.editform.c_miscamt_" + whatline;
    var linetotal = parseFloat(fixed_freight.value) + parseFloat(fixed_misc.value);
    document.editform.c_price_whatline.value = linetotal; } }
    So, if the first row in the table is 0, then the Function is passed "0" and should get the value of the form fields:
    'c_freight_0' and 'c_miscamt_0' and set 'c_price_0' to a new value in the form.
    The fixed_freight is showing that the string it has is correct, but it does not get the value from the form. Any ideas?

    DrClap wrote:
    DrLaszloJamf wrote:
    DrClap wrote:
    Although there are [Java sites|http://www.javaranch.com/] which do have an [HTML and Javascript forum|http://saloon.javaranch.com/cgi-bin/ubb/ultimatebb.cgi?ubb=forum&f=20].
    Don't forget the free hugs forum there, too!
    You must mean [this one|http://saloon.javaranch.com/cgi-bin/ubb/ultimatebb.cgi?ubb=forum&f=44].
    Oh yeah. Are you a JavaRanch regular, Dr.C? I was for a while, but not recently.

  • Fetching xml node nth value using Xpath

    HI Experts ,
    with reference to below question, i have one more doubt.
    https://social.msdn.microsoft.com/Forums/en-US/f894e5e2-8926-4604-9171-616da3f00cd7/xpath-to-fetch-value-in-flatfile-schema?forum=biztalkgeneral
    I used below xpath to fetch nth value of full repeating message nodes
    indexStr = System.Convert.ToString(index);DATE=xpath(In_FF, "string(//*[local-name() = 'Details']["+indexStr+"])/*[local-name()='DATE'])");index=index + 1;
    and i got below error, can any help me in this?
    Exception thrown from: segment 2, progress 43
    Inner exception: 'string(//*[local-name() = 'Details'][1])/*[local-name()='DATE'])' has an invalid token.
    Exception type: XPathException
    Source: System.Xml
    Target Site: MS.Internal.Xml.XPath.AstNode ParseXPathExpresion(System.String)
    The following is a stack trace that identifies the location where the exception occured

    your XPATH expression is WRONG.
    it should be
    DATE=xpath(In_FF,
    "string(//*[local-name() = 'Details']["+indexStr+"]/*[local-name()='DATE'])");
    There is NO ")" after ["+indexStr+"].
    The more reliable way is to use a string variable and use the System.String.Format() call as below
    xPathExpr = System.String.Format("string(//*[local-name() = 'Details'][{0}]/*[local-name()='DATE'])", index);
    DATE=xpath(In_FF, xPathExpr);
    The "invalid token" is because of the mismatched ")" in your XPATH Expression.
    Regards.

  • Hyperion Finance Reports - Get previous Column value using cell function

    Hi Guys,
    In Hyperion Financial Reports, i am trying to get the value of the previous column.
    I have tried hard coding the reference of the previous column by putting Col[B] as a cell formula.
    But i need to achieve it using dynamic formula for example
    Cell(Current Row, Current Column -1)
    The above explanation is syntactically incorrect, i am looking out for the correct syntax which helps me get the value of the previous column.
    Thanks in advance.

    What are you trying to achieve? Maybe there are different ways to look at it.
    There is no function (that i'm aware of) which performs a previous column display. Why you do think that [B] when you are in C is not working?
    Have you looked at the example given in Current/Cur Keyword
    Regards
    Celvin Kattookaran

  • Get excel Combobox value using POI library

    Hi. I'm trying to get the value of an Excel combobox with the POI library but it doesn't seem to be any function for this. The combobox was created with a Data validation, which takes de values to show in the combo from a certain cell range.
    The idea is taking the value selected on the combobox. The problem is that i've used all the methods of the combobox cell but none of them returns it.
    I would like to know if this is possible with de POI library and how to do it.
    Thank you very much!!

    Hi. I'm trying to get the value of an Excel combobox with the POI library but it doesn't seem to be any function for this. The combobox was created with a Data validation, which takes de values to show in the combo from a certain cell range.
    The idea is taking the value selected on the combobox. The problem is that i've used all the methods of the combobox cell but none of them returns it.
    I would like to know if this is possible with de POI library and how to do it.
    Thank you very much!!

Maybe you are looking for