2017-12-05 23 views
0

私は3番目の位置に著者を取得したいと思います。私は//著者[3]を使用しています。この方法でうまくいかない理由はありますか?私が入力すると// authors [1]私は行全体を取得します。3番目の位置を取得しようとするXPath

<publications> 

    <publication> 

    <publication_name> Group agency: The possibility, design, and status of corporate agents </publication_name> 
    <authors> C List,P Pettit </authors>  
    <publisher> Oxford University Press </publisher> 
    <year> 2011 </year> 
    <citation> 598 </citation> 

</publication> 

<publication> 

    <publication_name> Aggregating sets of judgments: An impossibility result</publication_name> 
    <authors> C List, P Pettit </authors>  
    <publisher> Economics and Philosophy </publisher> 
    <volume> 18 </volume> 
    <number> 1 </number> 
    <pages> 89- 110 </pages> 
    <citation> 558 </citation> 
    <year> 2002 </year>e 

</publication> 

<publication> 

    <publication_name> Epistemic democracy: generalizing the Condorcet jury theorem</publication_name> 
    <authors> C List, RE Goodin </authors>  
    <publisher> Journal of Political Philosophy </publisher> 
    <volume> 9 </volume> 
    <number> 3 </number> 
    <pages> 277-306 </pages> 
    <citation> 409 </citation> 
    <year> 2001 </year> 

</publication> 

<publication> 

    <publication_name> Arrow’s theorem in judgment aggregation </publication_name> 
    <authors> F Dietrich, C List </authors>   
    <publisher> Social Choice and Welfare </publisher> 
    <volume> 29 </volume> 
    <number> 1 </number> 
    <pages> 19 - 33 </pages> 
    <citation> 220 </citation> 
    <year> 2007 </year> 

</publication> 

<publication> 

    <publication_name> Deliberation, single-peakedness, and the possibility of meaningful democracy: evidence from deliberative polls </publication_name> 
    <authors> C List, RC Luskin, JS Fishkin, I McLean </authors>  
    <publisher> Journal of Politics </publisher> 
    <volume> 75 </volume> 
    <number> 01 </number> 
    <pages> 80-95 </pages> 
    <citation> 143 </citation> 
    <year> 2013 </year> 

</publication> 


<publication> 

    <publication_name> Swarm intelligence: When uncertainty meets conflict </publication_name> 
    <authors> L Conradt, C List, TJ Roper </authors>   
    <publisher> The American Naturalist </publisher> 
    <volume> 182 </volume> 
    <number> 5 </number> 
    <pages> 592-610 </pages> 
    <citation> 10 </citation> 
    <year> 2013 </year> 

</publication> 

<publication> 

    <publication_name> Intradimensional Single-peakedness and the Multidimensional Arrow Problem </publication_name> 
    <authors> C List </authors> 
    <publisher> Theory and Decision </publisher> 
    <citation> 10 </citation> 
    <year> 2004 </year> 

</publication> 

<publication> 

    <publication_name> The methodology of political theory </publication_name> 
    <authors> C List, L Valentini </authors>  
    <publisher> The Oxford Handbook of Philosophical Methodology </publisher> 
    <citation> 8 </citation> 
    <year> 2016 </year> 

</publication> 

<publication> 

    <publication_name> Social choice theory and deliberative democracy: a response to Aldred </publication_name> 
    <authors> JS Dryzek, C List </authors>  
    <publisher> British Journal of Political Science </publisher> 
    <volume> 34 </volume> 
    <number> 4 </number> 
    <pages> 752-758 </pages> 
    <citation> 8 </citation> 
    <year> 2004 </year> 

</publication> 

<publication> 

    <publication_name> Episteme symposium on group agency: Replies to Gaus, Cariani, Sylvan, and Briggs </publication_name> 
    <authors> C List, P Pettit </authors>  
    <publisher> Episteme </publisher> 
    <volume> 9 </volume> 
    <number> 3 </number> 
    <pages> 293 </pages> 
    <citation> 5 </citation> 
    <year> 2012 </year> 

</publication> 

<publication> 

    <publication_name> Two intuitions about free will: Alternative possibilities and intentional endorsement </publication_name> 
    <authors> C List, W Rabinowicz </authors>  
    <publication> Philosophical Perspectives </publication> 
    <volume> 28 </volume> 
    <number> 1 </number> 
    <pages> 155-172 </pages> 
    <citation> 4 </citation> 
    <year> 2014 </year> 

</publication> 

<publication> 

    <publication_name> Reasons for (prior) belief in Bayesian epistemology </publication_name> 
    <authors> F Dietrich, C List </authors>   
    <publisher> Synthese </publisher> 
    <volume> 190 </volume> 
    <number> 5 </number> 
    <pages> 787-808 </pages> 
    <citation> 4 </citation> 
    <year> 2013 </year> 

</publication> 

<publication> 

    <publication_name> Freedom as independence </publication_name> 
    <authors> C List, L Valentini </authors>  
    <publisher> Ethics </publisher> 
    <volume> 126 </volume> 
    <number> 4 </number> 
    <pages> 1043-1074 </pages> 
    <citation> 3 </citation> 
    <year> 2016 </year> 

</publication> 

<publication> 

    <publication_name> Belief revision generalized: A joint characterization of Bayes' and Jeffrey's rules </publication_name> 
    <authors> F Dietrich, C List, R Bradley </authors>  
    <publisher> Journal of Economic Theory </publisher> 
    <volume> 162</volume> 
    <pages> 352–371 </pages> 
    <citation> 3 </citation> 
    <year> 2016 </year> 

</publication> 



    <publication> 

     <publication_name>Which worlds are possible? A judgment aggregation problem</publication_name> 
     <authors>C List</authors> 
     <publisher>Journal of Philosophical Logic</publisher> 
     <volume>37</volume> 
     <number>1</number> 
     <pages>57-65</pages> 
     <citation>12</citation> 
     <year>2008</year> 

    </publication> 





</publications> 

私は唯一の第三の位置に著者を取得したいです。

結果はありません。エラーが表示されます。XPathクエリが結果を返しませんでした。 XPathスコープ:現在のファイル。

答えて

0

コンマを介して識別されるように、こののXPath 2.0式、

//authors[count(tokenize(.,',')) > 2]/tokenize(.,',')[3] 

各パブリケーションのリストされた第三の著者、3本の以上の著者を有するものauthor要素について

JS Fishkin 
TJ Roper 
R Bradley 

を(選択します分離)。

XPath 1.0の解決策は、読者の練習として残されています。

1

XPath 1.0のためにあなたは、次の式を使用することができます

//authors[substring-after(substring-after(. ,','),',')] 
/substring-before(concat(normalize-space(substring-after(substring-after(.,','),',')),","),",") 

のXpathの第一の部分が少なくないこと2カンマを持つauthorsタグを選択します。

プログラミング言語を使用しない3人目の作者の名前を取得したい場合は、2番目の部分でそれを行います。

私は(//authors)[1]は最初のauthors要素を選択しながら、//authors[1]は、その親の最初のauthors子であるすべてのauthors要素を選択していることに注意し、他の人が言ったことに加えて、読みやすさ

+0

と第三の著者を選択することができます。私は[** XPath 2.0の表現式**](https://stackoverflow.com/a/47660863/290085)と同じものを選択したことを確認しました。残念ながら、位置パスの最後のステップとして関数( 'substring-before()')を使うため、XPath 2.0 **が必要です。この強力な構文はXPath 1.0では利用できません。しかし、私はまだ、この閉会を得るためにあなたが明らかに耐えた痛みと苦しみを相殺しようとすると、まだアップボーニングしています。 :-) – kjhughes

+0

@kjhughes https://www.w3.org/TR/1999/REC-xpath-19991116/#function-substring-before? – splash58

+0

'substring-before()'自体は問題ありません。 XPath 2.0が必要なステップパスの終わりには、その位置付けです。 – kjhughes

0

のXPathを分割さしました私はあなたが望むと思います。

(あなたは「全体の行」を得たと話しましたが、XMLの文脈では「行」が何であるか分かりません。

+0

を理解しました。私は、第3位の3人目の著者だけを取得するのではなく、出版社のすべての著者と一緒に行全体を取得していたことを意味しました。私が何を意味したのか理解してくれることを願っています –

+0

いいえ、私はあなたが "行"とは何を意味するか分かりません。 –

0

あなたは、XPath 2.0 `トークン化()`関数を排除するために仕事の印象的な量を取ったこのXPathの

//authors[contains(text(),' C List, RE Goodin ')] 
関連する問題