2017-06-15 25 views
1

素早い回答が必要な絶対初心者です(今晩はこれを研究するつもりですが、今のところ答えが必要です)。白痴のために、事前に謝罪次のように私は、XPathを書かれているXPathクエリ - ノード名には複数の要素があります

sum(aaa[status='X' and code='Y']/value) 

これはまさに私が欲しいものを行います。ただし、以下の形式で、他のノードのカップル内部AAA生活:

sum(fff/ggg/aaa[status='X' and code='Y']/value)作品:

fff xmlns="urn:xxx.co.uk/soap:xxx" id="xxx" 

ggg type="1" ... title="ASDGHJAS ASHD" 

なぜしないのですか?

ノードfffとgggを表示するにはどうすればよいですか?クエリが実行されるたびに異なるので、最初の名前の後に来るすべての項目でフルネームを入力することはできません。

役に立たない最初のタイマーを助けることができれば、ありがとう!

<fff xmlns="urn:xxx.co.uk/soap:xxx" id="xxx" linktype="0"> 
<ggg type="1" title="ABC"> 
    <aaa> 
    <status>X</status> 
    <code>Y</code> 
    <value>15</value> 
    </aaa> 
<aaa> 
    <status>Z</status> 
    <code>G</code> 
    <value>5</value> 
</aaa> 
<aaa> 
    <status>X</status> 
    <code>Y</code> 
    <value>30</value> 
</aaa> 
</ggg> 

答えて

0

あなたのXPathは、アカウントにデフォルトの名前空間を取りません。 How does XPath deal with XML namespaces?を参照し、既定の名前空間の名前空間プレフィックスを定義します。あなたの特定のケースで 、次の名前空間を定義し、

x=urn:xxx.co.uk/soap:xxx 

次に、このXPathのあなたの助けのための

+0

おかげで、予想通り、

sum(//x:aaa[x:status='X' and x:code='Y']/x:value) 

45 

の答えを返します。私の基本的な知識のために私を虐待するだけではありません。リンクされた質問は非常に役に立ちますが、私はまだちょっと立ち往生しています。私は開発者の夫が家に帰るまで今は敗北を認めます。私はそれを自分でやろうとしていました - 皆さんは大多数をやっていましたが! – Rebecca

関連する問題