aboutsummaryrefslogtreecommitdiff
path: root/files/ja/web/api/xmlhttprequest/responsexml/index.html
blob: 26aa6ea804f02d7f3b5c1023440a1a9aa929f1f3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
---
title: XMLHttpRequest.responseXML
slug: Web/API/XMLHttpRequest/responseXML
tags:
  - AJAX
  - API
  - Fetching XML
  - Loading XML
  - Property
  - Read-only
  - Reading XML
  - Reference
  - Transfer
  - XML
  - XMLHttpRequest
  - download
  - responseXML
  - upload
  - アップロード
  - ダウンロード
  - プロパティ
  - 変換
  - 読み取り専用
translation_of: Web/API/XMLHttpRequest/responseXML
---
<div>{{APIRef('XMLHttpRequest')}}</div>

<p><strong><code>XMLHttpRequest.responseXML</code></strong> は読み取り専用のプロパティで、リクエストによって受け取った HTML または XML を含む {{domxref("Document")}}、またはリクエストが成功しなかった場合、まだ送信されていない場合、データが XML または HTML として解釈できない場合は <code>null</code> を返します。</p>

<div class="note">
<p><strong>メモ:</strong> <code>responseXML</code> という名前はこのプロパティの歴史の遺物です。これは HTML および XML の両方で動作します。</p>
</div>

<p>ふつう、レスポンスは "<code>text/xml</code>" として解釈されます。 {{domxref("XMLHttpRequest.responseType", "responseType")}} が "<code>document</code>" に設定され、リクエストが非同期に行われた場合、レスポンスは代わりに "<code>text/html</code>" として解釈されます。他の型のデータでは、 <a href="/ja/docs/Web/HTTP/Basics_of_HTTP/Data_URIs"><code>data:</code> の URL</a> の場合と同様、 <code>responseXML</code><code>null</code> になります。</p>

<p>サーバーが {{HTTPHeader("Content-Type")}} を "<code>text/xml</code>" とも "<code>application/xml</code>" とも指定しなかった場合、 {{domxref("XMLHttpRequest.overrideMimeType()")}} を使用して強制的に XML として解釈させることができます。</p>

<p>このプロパティはワーカーでは使用できません。</p>

<h2 id="Syntax" name="Syntax">構文</h2>

<pre class="syntaxbox">var <var>data</var> = <var>XMLHttpRequest</var>.responseXML;
</pre>

<h3 id="Value" name="Value"></h3>

<p>{{domxref("XMLHttpRequest")}} を用いて受け取った XML または HTML を解釈した {{domxref("Document")}}、またはデータを受け取っていなかったり、データが XML/HTML でな買ったりした場合は <code>null</code></p>

<h3 id="Exceptions" name="Exceptions">例外</h3>

<dl>
 <dt><code>InvalidStateError</code></dt>
 <dd>{{domxref("XMLHttpRequest.responseType", "responseType")}} が "<code>document</code>" でも空文字列でもない。</dd>
</dl>

<h2 id="Example" name="Example"></h2>

<pre class="brush: js">var xhr = new XMLHttpRequest;
xhr.open('GET', '/server');

// responseType を指定する場合は、空文字列または "document" でなければならない
xhr.responseType = 'document';

// レスポンスを XML として解釈するよう強制する
xhr.overrideMimeType('text/xml');

xhr.onload = function () {
  if (xhr.readyState === xhr.DONE &amp;&amp; xhr.status === 200) {
    console.log(xhr.response, xhr.responseXML);
  }
};

xhr.send();</pre>

<h2 id="Specifications" name="Specifications">仕様書</h2>

<table class="standard-table">
 <thead>
  <tr>
   <th scope="col">仕様書</th>
   <th scope="col">状態</th>
   <th scope="col">備考</th>
  </tr>
 </thead>
 <tbody>
  <tr>
   <td>{{SpecName('XMLHttpRequest', '#the-responsexml-attribute', 'responseXML')}}</td>
   <td>{{Spec2('XMLHttpRequest')}}</td>
   <td>WHATWG living standard</td>
  </tr>
 </tbody>
</table>

<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの対応</h2>

<p>{{Compat("api.XMLHttpRequest.responseXML")}}</p>

<h2 id="See_also" name="See_also">関連情報</h2>

<ul>
 <li>{{domxref("XMLHttpRequest")}}</li>
 <li>{{domxref("XMLHttpRequest.response")}}</li>
 <li>{{domxref("XMLHttpRequest.responseType")}}</li>
 <li><a href="/ja/docs/Web/Guide/Parsing_and_serializing_XML">XML の解釈とシリアライズ</a></li>
 <li>XML を解釈して DOM ツリーに格納: {{domxref("DOMParser")}}</li>
 <li>DOM ツリーを XML にシリアライズ: {{domxref("XMLSerializer")}} (特に {{domxref("XMLSerializer.serializeToString", "serializeToString()")}} メソッド)</li>
</ul>