質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
XML

XMLは仕様の1つで、マークアップ言語群を構築するために使われています。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

2回答

2204閲覧

xhrで取得したxmlを解析する

xhr

総合スコア8

XML

XMLは仕様の1つで、マークアップ言語群を構築するために使われています。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

0グッド

0クリップ

投稿2016/06/19 10:38

javascriptのxhrで取得したものから属性値を抽出したいのですが
方法がよくわかりません。

<form name="f"> <input type="text" name="t" onkeyup="s()"> </form> <script async defer> function s(){v=document.f.t.value;var x = new XMLHttpRequest();x.addEventListener('load',function(ev){document.getElementById('r').textContent = x.response;});x.open('GET','/complete?q='+v);x.send();} </script> <p id="r"></p>

というソースコードでテキストフォームに例えばaと入力すると

<?xml version="1.0"?><toplevel><CompleteSuggestion><suggestion data="akb48"/></CompleteSuggestion><CompleteSuggestion><suggestion data="akb"/></CompleteSuggestion><CompleteSuggestion><suggestion data="akb 総選挙"/></CompleteSuggestion><CompleteSuggestion><suggestion data="アマゾン"/></CompleteSuggestion><CompleteSuggestion><suggestion data="暗殺教室"/></CompleteSuggestion><CompleteSuggestion><suggestion data="au"/></CompleteSuggestion><CompleteSuggestion><suggestion data="ana"/></CompleteSuggestion><CompleteSuggestion><suggestion data="アニメ"/></CompleteSuggestion><CompleteSuggestion><suggestion data="明日の天気"/></CompleteSuggestion><CompleteSuggestion><suggestion data="アイコス"/></CompleteSuggestion></toplevel>

このように表示されるのですがdata属性の値を抽出してforeachのようなことを行いたいです。
お手数をおかけしますが、方法を教えて頂けるとありがたいです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kei344

2016/06/19 11:31

コードと出力結果はそれぞれコードブロックで囲んでいただけませんか? ```(バッククオート3つ)で囲み、前後に改行をいれるか、コードを選択して「</>」ボタンを押すとコードブロックになります。
BUILDIT

2016/06/19 11:57 編集

コードブロックで囲めませんでしたので改行を増やしました。 <form name="f"> <input type="text" name="t" onkeyup="s()"> </form> <script async defer> function s() { v=document.f.t.value; var x = new XMLHttpRequest(); x.addEventListener('load',function(ev){document.getElementById('r').textContent = x.response;}); x.open('GET','/complete?q='+v); x.send(); } </script> <p id="r"></p>
kei344

2016/06/19 12:05

質問文は編集できますよ? 編集画面にてコード部分を選択し、「</>」ボタンを押すとコード前後にバッククオートが挿入されますよ。
kei344

2016/06/19 12:05

また、解答欄も同じく編集&コードブロックが使用可能ですよ。
kei344

2016/06/19 12:06

というか、アカウントが違うようですが、別の方でしょうか。
kei344

2016/06/20 12:17

To: xhr 「BUILDIT 」というアカウントはサブアカウントですか?返信には質問されたアカウントで行ってください。
BUILDIT

2016/06/21 08:40 編集

コードブロックに関してはモバイルでもUAを変更するなどすれば同様に行えますか。現環境では</>ボタンが表示されません。 また、私が無知なものですから同一のアカウントで返信しなければならないということがわかりませんでした。 最初に使用したアカウントは凍結されましたのでこのアカウントの使用を認めて頂けると幸いです。
kei344

2016/06/21 09:01

コードブロックに関してはモバイルでもUAの偽装をすることなく出来ると思いますよ。「アカウントは凍結されました」とありますが、何か重要な違反でもされたのでしょうか。どちらにせよ別アカウントを使っているとこの質問を終了できませんので、凍結を解除してもらえるように運営に連絡されてはいかがでしょう。
guest

回答2

0

jQueryを使えば簡単です。

Javascript

1// xmlをjQueryでパースする。 2var xml = $('<?xml version="1.0"?><toplevel><CompleteSuggestion><suggestion data="akb48"/></CompleteSuggestion><CompleteSuggestion><suggestion data="akb"/></CompleteSuggestion><CompleteSuggestion><suggestion data="akb 総選挙"/></CompleteSuggestion><CompleteSuggestion><suggestion data="アマゾン"/></CompleteSuggestion><CompleteSuggestion><suggestion data="暗殺教室"/></CompleteSuggestion><CompleteSuggestion><suggestion data="au"/></CompleteSuggestion><CompleteSuggestion><suggestion data="ana"/></CompleteSuggestion><CompleteSuggestion><suggestion data="アニメ"/></CompleteSuggestion><CompleteSuggestion><suggestion data="明日の天気"/></CompleteSuggestion><CompleteSuggestion><suggestion data="アイコス"/></CompleteSuggestion></toplevel>'); 3// jQueryオブジェクトの中から該当エレメントをセレクタで探す 4var suggestions = $("CompleteSuggestion suggestion", xml); 5 6for(var i=0;i<suggestions.length;i++) { 7 // attrでdataを取り出す。 8 var data = $(suggestions[i]).attr("data"); 9}

投稿2016/06/20 01:07

masaya_ohashi

総合スコア9206

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

BUILDIT

2016/06/20 12:08

ご回答ありがとうございます。 これで解決できそうです。 jQueryを使わない方法もありますか。
BUILDIT

2016/06/21 08:34

感謝します
guest

0

<?xml version="1.0"?> <toplevel> <CompleteSuggestion> <suggestion data="akb48"/> </CompleteSuggestion> <CompleteSuggestion> <suggestion data="akb"/> </CompleteSuggestion> <CompleteSuggestion> <suggestion data="akb 総選挙"/> </CompleteSuggestion> <CompleteSuggestion> <suggestion data="アマゾン"/> </CompleteSuggestion> <CompleteSuggestion> <suggestion data="暗殺教室"/> </CompleteSuggestion> <CompleteSuggestion> <suggestion data="au"/> </CompleteSuggestion> <CompleteSuggestion> <suggestion data="ana"/> </CompleteSuggestion> <CompleteSuggestion> <suggestion data="アニメ"/> </CompleteSuggestion> <CompleteSuggestion> <suggestion data="明日の天気"/> </CompleteSuggestion> <CompleteSuggestion> <suggestion data="アイコス"/> </CompleteSuggestion> </toplevel>

投稿2016/06/19 12:01

BUILDIT

総合スコア10

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問