私は、Web開発者の場合、私はランクアマチュアであることを述べることでこれを序文します。リモートサーバーのXMLクエリ応答を視覚的にフォーマットする方法は?
私は、次のようなクエリ文字列を発行した際にXMLデータを提供するウェブアプライアンス持っている:私は、ユーザーがこのクエリの値を変更し、適切なXMLが戻ってきたことを可能にする簡単なフォームを作成し
https://example.com/api/reporting.ns?username=name&password=password&generate_report=SupportSession&start_date=2009-04-01&duration=0&limit=all
を。そのフォームは次のとおりです。
私が達成できなかったことは、そのXMLレスポンスを整形してかなり見えるようにすることです。
私はきれいにXMLをフォーマットし、このようにXSLTを使用してXMLを変換するためにJavaScriptを使用しているXSLT作成しました:
function loadXMLDoc(dname)
{
if (window.XMLHttpRequest)
{
xhttp=new XMLHttpRequest();
}
else
{
xhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xhttp.open("GET",dname,false);
xhttp.send("");
return xhttp.responseXML;
}
function displayResult()
{
xml=loadXMLDoc("Report.xml");
xsl=loadXMLDoc("Report.xsl");
// code for IE
if (window.ActiveXObject)
{
ex=xml.transformNode(xsl);
document.getElementById("content").innerHTML=ex;
}
// code for Mozilla, Firefox, Opera, etc.
else if (document.implementation && document.implementation.createDocument)
{
xsltProcessor=new XSLTProcessor();
xsltProcessor.importStylesheet(xsl);
resultDocument = xsltProcessor.transformToFragment(xml,document);
document.getElementById("content").appendChild(resultDocument);
}
}
ローカルに動作しますが、私のように、クロスドメインセキュリティ問題にぶつかりますウェブアプライアンスは固まっており、コードを置くことはできません。
私はこのサイトとウェブを検索し、他の手段[asp?]を使ってこれを達成する方法を探していて、ほとんど失敗しました。これが主な理由は、私はそれが攻撃する方法がわからないので、私はASPを知らないということです。
私は、フォームにクエリー文字列を作成し、ウェブアプライアンスから得られたXMLレスポンスを文字列にロードし、サーバー上にあるXSLTをオプションにすることはできますが、それは動作します。もう一度私が何をしているのか分からないからです。ここで
は私のXSLTです:
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<div class="contentBox"> -->
<h2>Sessions</h2>
<table class="wide grid padding">
<thead>
<tr>
<th>Session ID</th>
<th>Started</th>
<th>Duration</th>
<th>Public Site</th>
<th>CTS Ticket Number</th>
<th>Customer's Name</th>
<th>Customer's Operating System</th>
<th>Representative's Name</th>
<th>Chat Transcript Download</th>
</tr>
</thead>
<xsl:for-each select="session_list/session">
<xsl:if test="customer_list/customer/os='Windows® (x86) Click-To-Chat'">
<tr>
<td><xsl:value-of select="@lsid"/></td>
<td><xsl:value-of select="start_time"/></td>
<td><xsl:value-of select="duration"/></td>
<td><xsl:value-of select="public_site"/></td>
<td><xsl:value-of select="external_key"/></td>
<td><xsl:value-of select="primary_customer"/></td>
<td><xsl:value-of select="customer_list/customer/os"/></td>
<td><xsl:value-of select="primary_rep"/></td>
<td><a target="_blank" href="{session_chat_download_url}">Download Chat</a></td>
</tr>
</xsl:if>
</xsl:for-each>
</table>
</xsl:template>
</xsl:stylesheet>
そしてXMLウェブ機器出力の抜粋:
<?xml version="1.0" encoding="UTF-8"?>
<session_list xmlns="http://www.networkstreaming.com/namespaces/API" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<session lsid="fef672741e025ffda1acb3041f09252d">
<session_type>support</session_type>
<lseq>2899</lseq>
<start_time timestamp="1290027608">2010-11-17T16:00:08-05:00</start_time>
<end_time timestamp="1290027616">2010-11-17T16:00:16-05:00</end_time>
<duration>00:00:08</duration>
<public_site id="1">Default</public_site>
<external_key></external_key>
<session_chat_view_url>https://mysite.com/session_download.ns?lsid=l%3Dfef672741e025ffda1acb3041f09252d%3Bh%3D9bd6081f0b7fee08dcc32a58ef4cb54c7a0e233d%3Bt%3Dsd%3Bm%3Dchat&dl_action=chat&view=1&sessionType=sd</session_chat_view_url>
<session_chat_download_url>https://mysite.com/session_download.ns?lsid=l%3Dfef672741e025ffda1acb3041f09252d%3Bh%3D9bd6081f0b7fee08dcc32a58ef4cb54c7a0e233d%3Bt%3Dsd%3Bm%3Dchat&dl_action=chat&sessionType=sd</session_chat_download_url>
<file_transfer_count>0</file_transfer_count>
<primary_customer gsnumber="3">Smith, John</primary_customer>
<customer_list>
<customer gsnumber="3">
<username>Smith, John</username>
<public_ip>xxx.xxx.xxx.xxx</public_ip>
<private_ip>xxx.xxx.xxx.xxx</private_ip>
<hostname>DESKTOP</hostname>
<os>Windows 7 Enterprise x64 Edition (Build 7600)</os>
<primary_cust>1</primary_cust>
<info>
<name></name>
<company></company>
<company_code></company_code>
<issue></issue>
<details></details>
</info>
詳しい情報:
私はaspでURLのために働くリモートXMLを取得する方法を見つけましたhttp://example.com/file.xml
のように私のURLのために働いていません。たぶんそれはクエリですか?私はURLをエンコード/カプセル化する方法を見てきましたが、動作するものは見つかりませんでした。
http://asp101.com/samples/xmlxsl_remote.asp
あなたが提供できるすべてのヘルプをいただければ幸いです。
ありがとうございます!