XML - Isla de atos

 
Vista:

Isla de atos

Publicado por Juanma (1 intervención) el 15/07/2006 19:17:11
Hola.... estoy empezando en esto del XML y quiero realizar una tarea a priori simple...
Supongamos el fichero "misdatos.xml"
<Root>
<Datos>
<Nombre Id="1">Juan</Nombre>
<Nombre Id="0">Pedro</Nombre>
</Datos>
</Root>

y que tengo el fichero "pagina.html"
<html>
<body>
<xml Id="Agenda" src="misdatos.xml"></xml>
<table border="1" datasrc="#Agenda">
<tr>
<td><span datafld="Nombre"></span></td>
</tr>
</table>
</body>
</html>

Por lo que he leido deberia mostrarme los datos pero no obtengo mas que una tabla vacia.... sin embargo si cambio el fichero "misdatos.xml" por:
<Root>
<Datos>
<Nombre>Juan</Nombre>
</Datos>
<Datos>
<Nombre>Pedro</Nombre>
</Datos>
</Root>
Pues entonces si funciona y obtengo la salida deseada.... peor el caso es que necesito que me funciona con la estructura del primer fichero y no entiendo porque falla...; ?Alguien puede ayudarme?
Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Problema al mostrar datos anidados en HTML desde un archivo XML

Publicado por Alejandro (258 intervenciones) el 13/07/2023 19:38:04
Hola, Juanma.

El problema que estás experimentando se debe a la forma en que estás estructurando tu archivo XML y cómo lo estás referenciando en el archivo HTML.

En el primer archivo XML, estás utilizando una estructura de datos anidada dentro del elemento `<Datos>`, donde cada `<Nombre>` tiene un atributo `Id`. Sin embargo, en el archivo HTML, estás intentando acceder directamente al elemento `<Nombre>`, sin tener en cuenta la estructura anidada ni el atributo `Id`.

Para que tu archivo HTML funcione correctamente con la estructura del primer archivo XML, necesitas hacer algunos cambios:

1. Actualiza el archivo HTML para acceder a los elementos correctamente teniendo en cuenta la estructura anidada y el atributo `Id`:
1
2
3
4
5
6
7
8
9
10
<html>
<body>
<xml id="Agenda" src="misdatos.xml"></xml>
<table border="1" datasrc="#Agenda" datafld="Datos.Nombre">
<tr>
<td><span datafld="Nombre" dataformatas="HTML"></span></td>
</tr>
</table>
</body>
</html>

2. Modifica el archivo XML para que los elementos `<Datos>` sean elementos hermanos en lugar de elementos anidados:
1
2
3
4
5
6
7
8
<Root>
  <Datos Id="1">
    <Nombre>Juan</Nombre>
  </Datos>
  <Datos Id="0">
    <Nombre>Pedro</Nombre>
  </Datos>
</Root>

Al hacer estos cambios, el archivo HTML debería mostrar correctamente los datos de acuerdo con la estructura del primer archivo XML. Recuerda que en el archivo HTML, estamos accediendo a los elementos `<Datos.Nombre>`, ya que estos corresponden a los elementos `<Nombre>` dentro de los elementos `<Datos>` en el archivo XML.

Espero que esta solución te ayude a resolver el problema y a mostrar los datos correctamente.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar