Still celebrating National IT Professionals Day with 3 months of free Premium Membership. Use Code ITDAY17


Pulling most but not all xml data.

Posted on 2014-01-16
Medium Priority
Last Modified: 2014-02-07
I'm not pulling the player headshot ID = NHLplayer and Player_Name= pn run the html file and you will see

<!doctype html>
<meta charset="utf-8">
<title>Untitled Document</title>
<script src="" type="text/javascript"></script>
<script src="jquery.scrollbox.js"></script>
<script type="text/javascript">

	var xmlPath = '.' //'/xml/nba/scores/real';
	var xmlGameID = 'ADX-INDSTATS-PHI'; 

	$(document).ready(function() {
		//var myVar = setInterval(getsimple, 10000);

	function getsimple() {
		$.get(xmlPath + "/" + xmlGameID + ".xml", function(data) {
			var d = $(data);
			var message = d.find('message');
			var title = $("Title", message).text();
			var teamid = $("TeamID", message).text();
			$('#teamid1').attr('src', '' + teamid + '.png');
			playerData = $(data);
			players = playerData.find('Individual_Stats');
			playerData.find('Individual_Stats').each(function(i, player) {
			var newPlayer = $('#template').clone().removeAttr('id');
			 $('#NHLplayer').attr('src', ''+ $('Player_ID', player).text() +".jpg");
			$('.pn', newPlayer).text( $('Player_Name', player).html() );
				$('.p', newPlayer).text( $('Position', player).text() );
			$('.j', newPlayer).text( $('Jersey_Number', player).text() );
				$('.gp', newPlayer).text( $('Games_Played', player).text() );
			$('.g', newPlayer).text( $('Goals', player).text() );
			$('.a', newPlayer).text( $('Assists', player).text() );
			$('.tp', newPlayer).text( $('Total_Points', player).text() );
			$('#players ul').append( $('<li>').append(newPlayer) );
		linear: true,
  step: 1,
  delay: 0,
  speed: 100

<link rel="stylesheet" href="">
<style type="text/css">
	#players { width: 435px; height: 400px; overflow: hidden; }
	#players ul li { list-style-type: none; border-bottom:1px solid green; }
	.playerTable td { vertical-align:top; }
	#template { display:none; }

<div id="players" >
<table id="template" class="playerTable" width="400" border="0">
    <td width="73"><div align="center"><img src="Logos/130.png" name="teamid1" width="50" height="50" id="teamid1"></div></td>
    <td colspan="6"><div align="center" id="title1"></div></td>
    <td rowspan="3"><div align="center"><img src="" name="NHLPlayer" width="50" height="50" id="NHLPlayer"></div></td>
    <td colspan="6" class="pn"><div align="center"></div></td>
    <td width="84"><div align="center">Position</div></td>
    <td width="22" class="p"><div align="center"></div></td>
    <td width="57"><div align="center">Jersey #</div></td>
    <td width="21"class="j"><div align="center"></div></td>
    <td width="90"><div align="center">Games Played</div></td>
    <td width="23" class="gp"><div align="center"></div></td>
    <td><div align="center">Goals</div></td>
    <td class="g"><div align="center"></div></td>
    <td><div align="center">Assists</div></td>
    <td class="a"><div align="center"></div></td>
    <td><div align="center">Total Points</div></td>
    <td class="tp"><div align="center"></div></td>

Open in new window

Question by:powerztom
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 4
  • 4
LVL 44

Accepted Solution

Chris Stanyon earned 2000 total points
ID: 39786174
Hey Tom.

If you look at your XML data, you'll see that Player_Name is an attribute of the Individual_Stats node, and not a node in itself, so instead of:

$('.pn', newPlayer).text( $('Player_Name', player).html() );

You need this:

$('.pn', newPlayer).text( $(player).attr('Player_Name') );

The headshot isn't showing for a couple of reasons - firstly, you have a case-mismatch - NHLplayer in the jQuery and NHLPlayer in the HTML (note the capital P).

You're also using an ID where you should be using a class. You should have this in your jQuery:

$('.NHLPlayer').attr('src', ''+ $('Player_ID', player).text() +".jpg");
And this in your HTML:

<img src="" width="50" height="50" class="NHLPlayer">

Author Closing Comment

ID: 39786233
Chris thanks for the insight on "look at your XML data, you'll see that Player_Name is an attribute of the Individual_Stats node, and not a node in itself, so instead of:"

And Image now appears but it's the same headshot for every table. I'm gonna give these points and Put in one last ticket for repeating headshot. Chris I'm glad your back cause your code is always sharp.
LVL 44

Expert Comment

by:Chris Stanyon
ID: 39786256
Wish I was still on holiday :)

Make sure you've changed the NHLPlayer bit from using an ID to using a class (both in jQuery and HTML!)
Learn by Doing. Anytime. Anywhere.

Do you like to learn by doing?
Our labs and exercises give you the chance to do just that: Learn by performing actions on real environments.

Hands-on, scenario-based labs give you experience on real environments provided by us so you don't have to worry about breaking anything.


Author Comment

ID: 39786434
Coming Back to the work world sucks after a vacation no doubt. Chris I got NHLPlayer named this why in both html and Jquery. This one now is above me I think the same image that keeps repeating is the last record like the code for the image runs to the end while everything else is incrementing. Cause that head shot is not Claude Giroux IT'S Ray Emery who is the last player on the xml file. For image it just goes straight to last value and remains there for some reason. Give the html file a click check it out.Html File
LVL 44

Expert Comment

by:Chris Stanyon
ID: 39786505
Post your HTML page as you have it- you've only posted an image so I can't examine that! I'm sure it's something simple :)

Author Comment

ID: 39842569
Chris could you please give me a hand on my ticket You can get this done easily I'm trying to piece some of your code which is good but I can't come up with desired result. Please could you work your magic
LVL 44

Expert Comment

by:Chris Stanyon
ID: 39842591
Flat out with work at the moment so haven't really got time to look at it. I may get a chance over the weekend but no guarantees ;(

Author Comment

ID: 39843037
No problem Chris If you get to it I appreciate and if not you got to take care of yourself first

Featured Post

How to Create Failover DNS Record Sets in Route 53

Route 53 has the ability to easily configure DNS record sets specifically for failover scenarios. These failover record sets can be configured to failover to full-blown deployments in other regions or to a static HTML page that informs your customers of the issue.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

I was working on a PowerPoint add-in the other day and a client asked me "can you implement a feature which processes a chart when it's pasted into a slide from another deck?". It got me wondering how to hook into built-in ribbon events in Office.
Nothing in an HTTP request can be trusted, including HTTP headers and form data.  A form token is a tool that can be used to guard against request forgeries (CSRF).  This article shows an improved approach to form tokens, making it more difficult to…
The viewer will learn how to dynamically set the form action using jQuery.
The viewer will learn the basics of jQuery, including how to invoke it on a web page. Reference your jQuery libraries: (CODE) Include your new external js/jQuery file: (CODE) Write your first lines of code to setup your site for jQuery.: (CODE)
Suggested Courses

704 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question