2017-01-16 7 views
1

の選択要素注意:私は、次のDOMXPathを使うことの最大を取得することはできません

<record xmlns="http://www.loc.gov/MARC21/slim"> 
<leader>00000cam a2200000 a 4500</leader> 
<controlfield tag="001">21336101</controlfield> 
<controlfield tag="008">900227m19909999caua  b 001 0 eng </controlfield> 
<datafield ind1=" " ind2=" " tag="010"> 
    <subfield code="a"> 90080908 </subfield> 
</datafield> 
<datafield ind1=" " ind2=" " tag="020"> 
    <subfield code="a">0818689315</subfield> 
    <subfield code="q">(v. 1)</subfield> 
</datafield> 
<datafield ind1=" " ind2=" " tag="020"> 
    <subfield code="a">9780818689314</subfield> 
    <subfield code="q">(v. 1)</subfield> 
</datafield> 
<datafield ind1=" " ind2=" " tag="020"> 
    <subfield code="a">0818659319</subfield> 
    <subfield code="q">(v. 1 :</subfield> 
    <subfield code="q">microfiche)</subfield> 
</datafield> 
<datafield ind1=" " ind2=" " tag="020"> 
    <subfield code="a">9780818659317</subfield> 
    <subfield code="q">(v. 1 :</subfield> 
    <subfield code="q">microfiche)</subfield> 
</datafield> 
<datafield ind1=" " ind2=" " tag="020"> 
    <subfield code="a">0818689455</subfield> 
</datafield> 
<datafield ind1=" " ind2=" " tag="020"> 
    <subfield code="a">9780818689451</subfield> 
</datafield> 
<datafield ind1="0" ind2="0" tag="245"> 
    <subfield code="a">Computer arithmetic /</subfield> 
    <subfield code="c">edited by Earl E. Swartzlander, Jr.</subfield> 
</datafield> 
<datafield ind1=" " ind2=" " tag="260"> 
    <subfield code="a">Los Alamitos, CA :</subfield> 
    <subfield code="b">IEEE Computer Society Press,</subfield> 
    <subfield code="c">©1990-</subfield> 
</datafield> 
<datafield ind1=" " ind2=" " tag="300"> 
    <subfield code="a">volumes &lt;1-2&gt; :</subfield> 
    <subfield code="b">illustrations ;</subfield> 
    <subfield code="c">29 cm.</subfield> 
</datafield> 
<datafield ind1="1" ind2=" " tag="490"> 
    <subfield code="a">IEEE Computer Society Press tutorial</subfield> 
</datafield> 
<datafield ind1=" " ind2=" " tag="500"> 
    <subfield code="a">Vol. 1 is a reprint. Originally published: Stroudsburg, Pa. : Dowden, Hutchinson &amp; Ross, ©1980. Originally published in series: Benchmark papers in electrical engineering and computer science ; 21.</subfield> 
</datafield> 
<datafield ind1=" " ind2=" " tag="500"> 
    <subfield code="a">Vol 2 is a sequel to the earlier collection.</subfield> 
</datafield> 
<datafield ind1=" " ind2=" " tag="500"> 
    <subfield code="a">Vol. 1: 2nd ed.</subfield> 
</datafield> 
<datafield ind1="2" ind2=" " tag="505"> 
    <subfield code="a">Arithmetic operations in a binary computer/R.F. Shaw -- High-speed arithmetic in binary computers/O.L. MacSorley -- Fast carry logic for digital computers/B. Gilchrist, J.H. Pomerene, and S.Y. Wong -- A logic for high-speed addition/A. Weinberger and J.L. Smith -- Conditional-sum addition logic/J. Sklansky -- An evaluation of several two-summand binary adders/J. Sklansky -- Adder with distributed control/A. Svoboda -- Multiple addition by residue threshold functions and their representation by array logic/I.T. Ho and T.C. Chen -- Counting responders in an associative memory/C.C. Foster and F.D. Stockton -- Parallel counters/E.E. Swartzlander, Jr. -- A signed binary multiplication technique/A.D. Booth -- Multiplying made easy for digital assemblies/C. Ghest.</subfield> 
</datafield> 
<datafield ind1="2" ind2=" " tag="505"> 
    <subfield code="a">A binary multiplication scheme based on squaring/T.C. Chen -- A suggestion for a fast multiplier/C.S. Wallace -- Some schemes for parallel multipliers/L. Dadda -- On parallel digital multipliers/L. Dadda -- A compact high-speed parallel multiplication scheme/W.J. Stenzel, W.J. Kubitz, and G.H. Garcia -- A two's complement parallel array multiplication algorithm/C.R. Baugh and B.A. Wooley -- Comments on "A two's complement parallel array multiplication algorithm"/P.E. Blankenship -- The quasi-serial multiplier/E.E. Swartzlander, Jr. -- The two's complement quasi-serial multiplier/T.G. McDaneld and R.K. Guha -- A new class of digital division methods/J.E Robertson -- An algorithm for rapid binary division/J.B. Wilson and R.S. Ledley.</subfield> 
</datafield> 
<datafield ind1="2" ind2=" " tag="505"> 
    <subfield code="a">Digit-by-digit transcendental-function computation/R.J. Linhardt and H.S. Miller -- A unified algorithm for elementary functions/J.S. Walther -- Someproperties of iterative square-rooting methods using high-speed multiplication /C.V. Ramamoorthy, J.R. Goodman, and K.H. Kim -- Radix-16 evaluation of certainelementary functions/M.D. Ercegovac -- On the distribution of numbers/R.W. Hamming -- An analysis of floating-point addition/D.W. Sweeney -- The IBM ... Model 91 : floating-point execution unit/S.F. Anderson [and others] --Design of large high-speed floating-point-arithmetic units/J.B. Gosling --Analysis of rounding methods in floating-point arithmetic/D.J. Kuck, D.S. Parker, Jr., and A.H. Sameh.cos x, tan-¹ x, and cot-¹ x/W.H. Specker.</subfield> 
</datafield> 
<datafield ind1=" " ind2="0" tag="650"> 
    <subfield code="a">Computer programming.</subfield> 
</datafield> 
<datafield ind1=" " ind2="0" tag="650"> 
    <subfield code="a">Floating-point arithmetic.</subfield> 
</datafield> 
<datafield ind1=" " ind2="0" tag="650"> 
    <subfield code="a">Computer arithmetic.</subfield> 
</datafield> 
<datafield ind1=" " ind2="4" tag="650"> 
    <subfield code="a">Arithmétique ordinateur.</subfield> 
</datafield> 
<datafield ind1=" " ind2="7" tag="650"> 
    <subfield code="a">Computer arithmetic.</subfield> 
    <subfield code="2">fast</subfield> 
    <subfield code="0">(OCoLC)fst00872029</subfield> 
</datafield> 
<datafield ind1=" " ind2="7" tag="650"> 
    <subfield code="a">Computer programming.</subfield> 
    <subfield code="2">fast</subfield> 
    <subfield code="0">(OCoLC)fst00872390</subfield> 
</datafield> 
<datafield ind1=" " ind2="7" tag="650"> 
    <subfield code="a">Floating-point arithmetic.</subfield> 
    <subfield code="2">fast</subfield> 
    <subfield code="0">(OCoLC)fst00927429</subfield> 
</datafield> 
<datafield ind1=" " ind2="7" tag="650"> 
    <subfield code="a">Teoria da computacao.</subfield> 
    <subfield code="2">larpcal</subfield> 
</datafield> 
<datafield ind1=" " ind2="7" tag="650"> 
    <subfield code="a">Unités arithmétiques et logiques (Informatique)</subfield> 
    <subfield code="2">ram</subfield> 
</datafield> 
<datafield ind1="1" ind2=" " tag="700"> 
    <subfield code="a">Swartzlander, Earl E.,</subfield> 
    <subfield code="c">Jr.,</subfield> 
    <subfield code="d">1945-</subfield> 
</datafield> 

働く私は要素名にかかわらず、値が "245"の属性名 "tag"を持つすべての要素を取得しようとしています。

$responseDOM = new DOMDocument(); 
    $responseDOM->loadXML($responsestring); 
    $responseXPath = new DOMXpath($responseDOM); 
    $responseXPath->registerNamespace("ns", "http://www.loc.gov/MARC21/slim"); 
    $xpatheval = $responseXPath->query('//ns:*[tag="245"]'); 
    d(get_class($xpatheval)); 
    d($xpatheval->length); 

d()は、var_dumpと同様のカスタムライブラリ関数です。私が$ xpatheval-> lengthをダンプすると、関連するXML要素を$ xpathevalに含める必要があるので、0より大きい値、つまり1でなければなりません。

どのようなソリューションを採用できますか?

答えて

1

属性がattributeaxisを介して選択される:

//ns:*[attribute::tag = "245"] 

又は、abbreviated syntaxを使用して:

//ns:*[@tag = "245"]