XML&PHP~数値の取り出し方

このQ&Aのポイント
  • XML&PHPで数値の取り出し方について質問です。
  • PHPプログラミングで、「totalResultsReturned」の値を取り出す方法を教えてください。
  • 「totalResultsReturned」は、検索結果の総数を表す値であり、その値を取得したいです。
回答を見る
  • ベストアンサー

XML&PHP~数値の取り出し方

PHPプログラミングで、どうしても解らないので質問させていただきます。 <ResultSet xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:yahoo:jp:srch" xsi:schemaLocation="urn:yahoo:jp:srch http://api.search.yahoo.co.jp/WebSearchService/V1/WebSearchResponse.xsd" totalResultsAvailable="8850000" totalResultsReturned="10" firstResultPosition="1"> このtotalResultsReturned="10"の 「10」を取り出すにはどうしたらよいのでしょうか?

  • PHP
  • 回答数1
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

PHPのバージョンが5でDOM関数を使える場合ですが。 DOMDocument->getElementsByTagName() 関数で "ResultSet" タグの要素の集合を取り出し DOMNodelist->item() 関数で目的のタグ要素を取り出し DOMElement->getAttribute() 関数で "totalResultsReturned" 属性の値を取り出せます ソースで書くと以下のようになります。 <?php $doc = new DOMDocument(); $doc->load("example.xml"); echo $doc->getElementsByTagName("ResultSet")->item(0)->getAttribute("totalResultsReturned"); ?> XML文書のファイル名が "example.xml" で一番最初の "ResultSet" タグの "totalResultsReturned" 属性の値を取り出します。

sunnylife
質問者

お礼

有難うございます! XML解析関数は、「simplexml_load_file」しか知らなく、 DOMは理解不能だったのですが、いただいたコードと 同じ記述をすえば、値を取り出せるのですね! DOMを習得すれば確か、GoogleAPIも扱えるようになるそうなので、 この際、DOMの勉強もしたいと思います! お答え有難う御座います。!

関連するQ&A

  • 要素の内容にxmlを入れたい

    次のようなxmlを作成しました。 <?xml version="1.0" encoding="UTF-8"?> <tns:StateChange xsi:schemaLocation="http://sample.com/Change.xsd" xmlns:tns="http://sample.com/XSDDefinition" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <ServiceName>test</ServiceName> <wsdl></wsdl> </tns:StateChange> wsdl要素の内容として <?xml version="1.0" encoding="utf-8\"?><wsdl:definitions xmlns:s="http://www.w3.org/2001/XMLSchema".... といったいわゆるWSDLを文字列として指定したいと考えて、指定するとvalidate時にエラーになってしまいます。 xmlを要素の内容にしたい場合、どのようにすればいいのでしょうか?

    • ベストアンサー
    • XML
  • web.xmlの中の<web-app>についてなんですが

    こんばんは。<web-app>についてなんですが、 <web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee/web-app_2_5.xsd" version="2.5"> といった類の内容をよくみかけますし、当たり前のように記述されていますが、 version="2.5"(これはサーブレットのバージョンが2.5という事でいいのでしょうか?)のところをversion="100" とかにしても動きますし、xml:schemaLocationのところにでたらめなurlを入れても動きますし、<web-app>だけでも動きますが、 <web-app>だけでは、なにか都合の悪いことでもあるのでしょうか。

  • VB.netでXMLファイルの妥当性チェック

    下記のようなXMLファイルを読み込み、 スキーマファイルで妥当性の検証を行っているのですが、 'http://www.w3.org/2001/XMLSchemainstance:schemaLocation' 属性が宣言されていません。 というエラーになってしまいます。 schemaLocationはxsdにも宣言しないとまずいのでしょうか?どなたかご存知のかた教えてください。 ------------------------------------------------ <?xml version="1.0" encoding="UTF-8"?> <rfd:rdmxmlns:xsi="http://www.w3.org/2001/XMLSchemainstance" xmlns:rfd="file://XML\Samples\TEST" xsi:schemaLocation="file://XML\Samples\TEST C:\XML\Samples\Person.xsd"> <Person> <Date>2003-12-03T13:20:00+08:00</Date> <Name>H.HIGASHINO</Name> </Person> </rfd:rdm> -------------------------------------------------

  • web.xmlの書き方

    web.xmlの書き方 質問させてください webcontent\day5\rsMeta.jspというファイルにブラウザからアクセスしたいのですが、エラーが出ます。 web.xmlの書き方が間違っているのですが、どのように書けばよいでしょうか? 現状のweb.xmlを以下に記載します。 <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5"> <display-name>Jijyodoryoku</display-name> <servlet> <servlet-name>rsMeta</servlet-name> <jsp-file>/day5/rsMeta.jsp</jsp-file> </servlet> <servlet-mapping> <servlet-name>rsMeta</servlet-name> <url-pattern>/rsMeta</url-pattern> </servlet-mapping> </web-app>

    • ベストアンサー
    • Java
  • DTDとXML Schemaでのデフォルト値の指定について

    以下のようなXMLをパーズするプログラムがあります。 ------------------------------------------------------------------ DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); dbf.setNamespaceAware(true); dbf.setValidating(true); DocumentBuilder documentBuilder = factory.newDocumentBuilder(); Document doc = documentBuilder.parse(new InputSourc("a.xml")); ------------------------------------------------------------------ a.xmlに以下のようなXMLの構造をDTDで指定した場合のxmlをパーズさせると、 <!DOCTYPE a [ <!ELEMENT a (#PCDATA)> <!ATTLIST a a1 CDATA "abc"> ]> <a/> 上記のプログラム3行目のvalidationの設定がtrue、falseに関わらす、 <a a1="abc"/> というような形式のドキュメントオブジェクトが返ってきます。 ですが、以下のようにXMLの構造をXML Schemaで定義した場合、 a.xml <a xsi:noNamespaceSchemaLocation="b.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/> b.xsd <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <xsd:element name="a"> <xsd:complexType> <xsd:attribute name="a1" type="xsd:string" default="abc"/> </xsd:complexType> </xsd:element> </xsd:schema> 返ってくるドキュメントオブジェクトのa要素には、validationがtrueの場合はa1属性が含まれる、falseの場合は含まれません。 これは正しい動作なのでしょうか? また、XML Schemaの場合もvalidationがtrue、falseに関わらず、 デフォルト値が指定された属性を含めることはできないのでしょうか?

    • ベストアンサー
    • XML
  • web.xmlの書き方2

    すいません下の質問なのですが フォルダ構成は WEB-INF |____classes___test___Test.class | |____jsp(空) | |____web.xml となっております。 あと質問に追加なのですが。 他の書籍のweb.xmlを参考にして web.xmlの書き出しの部分を <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd"> <web-app> では無く、 <?xml version="1.0" encoding="UTF-8" ?> <web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4"> にしてトライしてみたところ、そもそもTomcatを起動させる時点で多数のエラーが出ます。 Tomcatのエラーは 致命的: Parse Error at line 8 column -1: 要素タイプ "servlet-name" は宣言されて いません。 org.xml.sax.SAXParseException: 要素タイプ "servlet-name" は宣言されていません。 といった物が多数でます。 これについてもお答え願えれば幸いです。 それでは失礼いたします。

    • ベストアンサー
    • Java
  • javascriptにてXMLの読み込み

    yahooの日本語係り受け解析を使って解析を行おうと思っています。 <ResultSet xsi:schemaLocation="urn:yahoo:jp:jlp:DAServicehttp://jlp.yahooapis.jp/DAService/V1/parseResponse.xsd">  -<Result>   -<ChunkList>    -<Chunk>     <Id>0</Id>     <Dependency>1</Dependency>     -<MorphemList>      -<Morphem>       <Surface>こんな</Surface>       <Reading>こんな</Reading>       <Baseform>こんな</Baseform>       <POS>形容動詞</POS>       <Feature>形容動詞,形動特殊,*,こんな,こんな,こんな</Feature>      </Morphem>     </MorphemList>    </Chunk>    -<Chunk>     <Id>1</Id>     <Dependency>2</Dependency>     -<MorphemList>      -<Morphem>       <Surface>私</Surface>       <Reading>わたし</Reading>            ・            ・            ・ リクエストを送るとこのような形で返ってくるのですが、IdとDependencyの値は取れるのにSurfaceの値が取れません。 JKL.ParseXMLを使っています。 処理部分↓ var http = new JKL.ParseXML("http://jlp.yahooapis.jp/…  //リクエスト&オブジェクト var data = http.parse(); //解析 var kai = data["ResultSet"]["Result"]["ChunkList"]["Chunk"]; //この後 kai["Id"]で値は取れます。 var kai2 = data["ResultSet"]["Result"]["ChunkList"]["Chunk"]["MorphemList"]["Morphem"];  //ここでエラーが出ます。 MorphemがNullまたはオブジェクトではないと表示されるんですが… ブラウザはIEです。 どなたかご教授お願いします。

  • XMLの名前空間について

    XMLの名前空間についてです。 色々と参考ページを読ませて頂き、 名前空間はネット上で衝突が起きない一意のURIを使うと書かれていたのですが、 質問です 1. 実際に衝突が起きなければURIは任意に決めていいのでしょうか? 2. 1と若干かぶりますが、ネットに上げなければ何でもよいのでしょうか? 3. ネット上で使用するにあたって、それを定義する際どのようなURIを使うと良いでしょうか? 宜しければ教えて下さい。 <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">

    • ベストアンサー
    • XML
  • RewriteEngineを使用すると、HTTPヘッダーが後ろに漏れる

    CGIからXMLを出力するのに、RewriteEngineを用いてURLを加工したいのですが、どうもうまくいきません。 HTTP/1.1 200 OK ←正しく出力されているhttpヘッダ (省略) <?xml version="1.0" encoding="EUC-JP" ?><?xml version="1.0" encoding="UTF-8"?> <urlset xmlns="http://www.google.com/schemas/sitemap/0.84" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.google.com/schemas/sitemap/0.84 http://www.google.com/schemas/sitemap/0.84/sitemap.xsd"> (省略) </urlset> HTTP/1.1 200 OK ←ここから問題 Date: Mon, 20 Feb 2006 08:59:47 GMT Server: Apache/2.0.54 (Unix) Content-Length: 0 Connection: close Content-Type: text/plain Content-Language: ja 今.htaccessに記述してあるのは RewriteEngine on RewriteRule ^sitemaps.xml$ /sitemaps.cgi [T=application/x-httpd-cgi] やりたいことは、以下のようなことです。 http://terai.xrea.jp/PukiWiki/Google.html にある http://terai.xrea.jp/?cmd=sitemaps から http://terai.xrea.jp/sitemap.xml へ・・・ ご教授の程よろしくお願いします。

    • 締切済み
    • CGI
  • XMLSchemaのデータ型をインポートしたい

    外部ファイルで定義したXMLSchemaのデータ型をimportで取り込んで使おうとすると、エラーになってしまいます。 XMLSchemaで使用するデータ型を次のように定義しました。 ------------- datatype.xsd ---------------- <?xml version="1.0" encoding="UTF-8" standalone="no"?> <sd:schema  targetNamespace="http://datatype.com"  xmlns:datatype="http://datatype.com"  xmlns="http://datatype.com"  xmlns:sd="http://www.w3.org/2001/XMLSchema" > <sd:simpleType name="html_xhtml_id">  <sd:restriction base="sd:token">   <sd:pattern value="[A-Za-z]+[A-Za-z0-9]*" />  </sd:restriction> </sd:simpleType> </sd:schema> ------------------------------------------------- そして次のようにXMLSchemaで呼び出しました。 ----------------- caller.xsd ----------------------- <?xml version="1.0" encoding="UTF-8" standalone="no"?> <sd:schema  targetNamespace="http://example.com"  xmlns="http://sample.com"  xmlns:datatype="http://datatype.com"  xmlns:sd="http://www.w3.org/2001/XMLSchema" > <sd:import namespace="http://datatype.com" schemaLocation="./datatype.xsd" /> <!-- ここでエラーが発生する模様 --> <sd:element name="testElement" type="datatype:html_xhtml_id" /> </sd:schema> ----------------------------------------------------------- エラーの内容(Java): org.xml.sax.SAXParseException: src-resolve: Cannot resolve the name 'datatype:html_xhtml_id' to a(n) 'type definition' component. ちなみに、datatype.xsdで定義せずにcaller.xsdで定義したデータ型を使っても、エラーは発生しません。 何がいけないのでしょうか。 分かる方よろしくお願いします。

    • 締切済み
    • XML