<style scoped>
/* custom styles for this example */
#demo .output {margin-bottom:1em; padding:10px; border:1px solid #D9D9D9;}
</style>
<form id="demo">
<h4>JSON</h4>
<h6>Data</h6>
<pre>
{
"ResultSet": {
"type":"web",
"totalResultsAvailable":391000000,
"totalResultsReturned":10,
"firstResultPosition":1,
...
"Result":[
{"Title":"Madonna","Summary":"Official site of pop diva
Madonna, with news, music, media, and fan club.",
"Url":"http:\/\/www.madonna.com\/", ...,
"Size":"145030"}},
{"Title":"Madonna - MySpace","Summary":"Madonna MySpace
page features news, blog, music downloads, desktops,
wallpapers, and more.",
"Url":"http:\/\/www.myspace.com\/madonna",
..., "Size":"110365"}},
{"Title":"YouTube - madonna's Channel",
"Summary":"The Official Madonna YouTube Channel.
Want to Subscribe? ... http:\/\/www.youtube.com\/Madonna.
Sharing Options There are 3 ways to share this channel.",
"Url":"http:\/\/youtube.com\/madonna", ...,
"Size":"49955"}},
...
]
}
}
</pre>
<h6>Schema</h6>
<pre>
{
resultListLocator: "ResultSet.Result",
resultFields: ["Title"]
}
</pre>
<h6>Normalized data</h6>
<input type="button" id="demo_json" value="Retrieve data">
<div id="demo_output_json" class="output"></div>
<h4>XML</h4>
<h6>Data</h6>
<pre>
<query xmlns:yahoo="http://www.yahooapis.com/v1/base.rng"
yahoo:count="10" ...>
<diagnostics>
...
</diagnostics>
<results>
<result xmlns="http://www.inktomi.com/">
...
<dispurl>
<![CDATA[www.<b>madonna.com</b>]]>
</dispurl>
<size>144947</size>
<title>
<![CDATA[<b>madonna</b>.com home]]>
</title>
<url>http://www.madonna.com/</url>
</result>
<result xmlns="http://www.inktomi.com/">
...
<dispurl>
<![CDATA[<b>en.wikipedia.org</b>/wiki/<wbr>
<b>Madonna</b>_(entertainer)]]>
</dispurl>
<size>450316</size>
<title>
<![CDATA[<b>Madonna</b> (Entertainer) - Wikipedia]]>
</title>
<url>http://en.wikipedia.org/wiki/Madonna_(entertainer)</url>
</result>
<result xmlns="http://www.inktomi.com/">
...
<dispurl>
<![CDATA[www.<b>myspace.com</b>/<b>madonna</b>]]>
</dispurl>
<size>110851</size>
<title>
<![CDATA[<b>Madonna</b> - MySpace]]>
</title>
<url>http://www.myspace.com/madonna</url>
</result>
...
</results>
</query>
</pre>
<h6>Schema</h6>
<pre>
{
resultListLocator: "result",
resultFields: [{key:"title", locator:"*[local-name() ='title']"}]
}
</pre>
<h6>Normalized data</h6>
<input type="button" id="demo_xml" value="Retrieve data">
<div id="demo_output_xml" class="output"></div>
</form>
<script type="text/javascript">
YUI().use("dump", "node", "datasource-io", "datasource-jsonschema", "datasource-xmlschema", function (Y) {
var myDataSourceJSON = new Y.DataSource.IO({source:"../assets/datasource/ysearch.json"}),
myCallbackJSON = {
success: function(e){
},
failure: function(e){
Y.one("#demo_output_json").setContent("Could not retrieve data: " + e.error.message);
}
};
schema: {
resultListLocator: "ResultSet.Result",
resultFields: ["Title"]
}
});
Y.on("click", function(e){
request:"?output=json",
callback:myCallbackJSON
});
}, "#demo_json");
var myDataSourceXML = new Y.DataSource.IO({source:"../assets/datasource/ysearch.xml"}),
myCallbackXML = {
success: function(e){
Y.one("#demo_output_xml").setContent(Y.dump(e.response).replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">"));
},
failure: function(e){
Y.one("#demo_output_xml").setContent("Could not retrieve data: " + e.error.message);
}
};
schema: {
resultListLocator: "result",
resultFields: [{key:"title", locator:"*[local-name() ='title']"}]
}
});
Y.on("click", function(e){
request:"?output=xml",
callback:myCallbackXML
});
}, "#demo_xml");
});
</script>