具有多个节点实例的XML、Soap和XPATH查询

具有多个节点实例的XML、Soap和XPATH查询,xml,soap,xpath,Xml,Soap,Xpath,我正在使用一些XML,并没有真正的技术倾向,我一直试图通过阅读互联网上的各种来源来了解这一点,但进展并不快 我有以下XML: <soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <soap:H

我正在使用一些XML,并没有真正的技术倾向,我一直试图通过阅读互联网上的各种来源来了解这一点,但进展并不快

我有以下XML:

<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
   <soap:Header>
      <XXXSoapHeader xmlns="http://XXX.com/optima/webservices">
         <AuthenticationString>?</AuthenticationString>
      </XXXSoapHeader>
   </soap:Header>
   <soap:Body>
      <SubmitMultipleCalcMarginRequestResponse xmlns="http://XXX.com/optima/webservices">
         <SubmitMultipleCalcMarginRequestResult>
            <TaskExecutionSubmitInfo>
               <taskExecutionId>74457</taskExecutionId>
               <description>Calc LIVE BROKER margin : Account WebServiceTest_Account1(435) : Business Date (12-Feb-2007)</description>
            </TaskExecutionSubmitInfo>
            <TaskExecutionSubmitInfo>
               <taskExecutionId>74458</taskExecutionId>
               <description>Calc LIVE BROKER margin : Account WebServiceTest_Account2(436) : Business Date (12-Feb-2007)</description>
            </TaskExecutionSubmitInfo>
         </SubmitMultipleCalcMarginRequestResult>
      </SubmitMultipleCalcMarginRequestResponse>
   </soap:Body>
</soap:Envelope>
返回:

<?xml version="1.0" encoding="UTF-8"?>

<root xmlns="http://XXX.com/optima/webservices">
  <taskExecutionId>74457</taskExecutionId>
  <taskExecutionId>74458</taskExecutionId>
</root>

74457
74458
但是,如果只想返回第二个taskExecutionId,我该怎么办?还是第一个?我试过在[n]后面加上一个,但这不起作用。有什么想法吗?

要获取整个XML文档中某个内容的第N个实例,可以使用以下XPath:

(//*[name() = 'taskExecutionId'])[N]
括号是必要的。如果没有它们,您将选择其特定父项下的第N个
taskExecutionId

(//*[name() = 'taskExecutionId'])[N]