私はいくつかの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>
そして、ノードから情報を抽出するために以下を使用しています:
//*[name() = 'taskExecutionId']
どちらが返されますか:
<?xml version="1.0" encoding="UTF-8"?>
<root xmlns="http://XXX.com/optima/webservices">
<taskExecutionId>74457</taskExecutionId>
<taskExecutionId>74458</taskExecutionId>
</root>
しかし、2番目のtaskExecutionIdだけを返したい場合はどうすればよいですか?または最初の?[n]を付けて追加しようとしましたが、機能しません。何か案は?