Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Tema Cerrado
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 22-06-2012
Avatar de M.L.Casellas
M.L.Casellas M.L.Casellas is offline
Miembro
NULL
 
Registrado: sep 2011
Posts: 23
Poder: 0
M.L.Casellas Va por buen camino
Post XML, Nodos, subnodos, y más subnodos...¿Cómo leerlos? Me sale en blanco....

Hola;
Llevo un par de días aprendiendo sobre ficheros .xml (después de estudiar previamente html y xhtml) y he conseguido hacer algún ejemplo y leer fichero .xml creado por mi a mono con el notepad.
Pero……todo esto era para leer un .xml que recibo de una llamada por http. Pues el fichero que recibo como respuesta no doy con la forma de extraer los datos que me interesan.
Tengo que decir que buscando info encontré en más de un sitio la el mismo tutorial de como meter un xml en un ClientDataSet y a mi no me funciona. En los ejemplos veo que insertan un ClientDataSet, DataSource y un DBGrid y ¡a volar! Pero a mi me pide algo así como provider….en fin.
Volviendo al tema principal de mi problema: El .xml que obtengo después de la llamada por http, lo guardo con codificación UTF-8. Y se guarda correctamente, lo abro con IE, Firefox….todo bien. Pero desde Delphi, no me sale nada. No da error, pero el dato en blanco.
Pego aquí un xml de respuesta al completo. Se trata de un único registro, pues es la ficha de un ISBN (de un libro):
Código:
<?xml version="1.0" encoding="UTF-8" ?>
<getRecordsXResponse xmlns="http://www.dilve.es/dilve/api/xsd/getRecordsXResponse" version="1.2">
<ONIXMessage 
      xmlns="http://www.editeur.org/onix/2.1/reference"
>
 <Header>
  <FromCompany>DILVE</FromCompany>
  <SentDate>20120621</SentDate>
 </Header>
 <Product>
  <RecordReference>9788431539474</RecordReference>
  <NotificationType>03</NotificationType>
  <ProductIdentifier>
   <ProductIDType>03</ProductIDType>
   <IDValue>9788431539474</IDValue>
  </ProductIdentifier>
  <ProductForm>BC</ProductForm>
  <ProductFormDescription></ProductFormDescription>
  <Series>
   <Title>
    <TitleType>01</TitleType>
    <TitleText>Desarrollo profesional</TitleText>
   </Title>
   <NumberWithinSeries>Profesional</NumberWithinSeries>
  </Series>
  <Title>
   <TitleType>01</TitleType>
   <TitleText>Curso rápido para desarrollar la memoria</TitleText>
  </Title>
  <Title>
   <TitleType>10</TitleType>
   <TitleText>Curso rápido para desarrollar la memoria</TitleText>
  </Title>
  <Contributor>
   <ContributorRole>A01</ContributorRole>
   <PersonNameInverted>Tresoldi, Roberto</PersonNameInverted>
  </Contributor>
  <Language>
   <LanguageRole>01</LanguageRole>
   <LanguageCode>spa</LanguageCode>
  </Language>
  <NumberOfPages>128</NumberOfPages>
  <MainSubject>
   <MainSubjectSchemeIdentifier>12</MainSubjectSchemeIdentifier>
   <SubjectSchemeVersion>2.1</SubjectSchemeVersion>
   <SubjectCode>VS</SubjectCode>
   <SubjectHeadingText>AUTOAYUDA Y DESARROLLO PERSONAL</SubjectHeadingText>
  </MainSubject>
  <Subject>
   <SubjectSchemeIdentifier>12</SubjectSchemeIdentifier>
   <SubjectSchemeVersion>2.1</SubjectSchemeVersion>
   <SubjectCode>VS</SubjectCode>
   <SubjectHeadingText>AUTOAYUDA Y DESARROLLO PERSONAL</SubjectHeadingText>
 
  </Subject>
  <Subject>
   <SubjectSchemeIdentifier>51</SubjectSchemeIdentifier>
   <SubjectCode>159.9</SubjectCode>
   <SubjectHeadingText>Psicología.</SubjectHeadingText>
 
  </Subject>
  <AudienceCode>01</AudienceCode>
  <OtherText>
   <TextTypeCode>01</TextTypeCode>
   <TextFormat>06</TextFormat>
   <Text language="spa">Vivimos en una época en la que estamos sometidos a un continuo bombardeo mediático e informático que ha revolucionado el concepto......</Text>
  </OtherText>
  <OtherText>
   <TextTypeCode>01</TextTypeCode>
   <TextFormat>06</TextFormat>
   <Text language="spa">Roberto Tresoldi, licenciado en Letras por la Universidad Católica de Milán, ha trabajado en el sector de la información, las relaciones públicas, la publicidad, la organización de congresos y la formación para algunas grandes empresas internacionales. Políglota (conoce más de diez lenguas modernas y varias lenguas antiguas), es autor de obras y artículos sobre la historia de la cultura, ha estudiado el tema de la memoria experimentando diversas técnicas de memorización en empresas, cursos, brainstormings y conferencias.</Text>
  </OtherText>
  <MediaFile>
   <MediaFileTypeCode>04</MediaFileTypeCode>
   <MediaFileLinkTypeCode>01</MediaFileLinkTypeCode>
   <MediaFileLink>http://www.edhasa.com.ar/temp/1000/9788431539474.jpg</MediaFileLink>
  </MediaFile>
  <Publisher>
   <NameCodeType>02</NameCodeType>
   <NameCodeTypeName>DILVE_PUBLID</NameCodeTypeName>
   <NameCodeValue>DLV00011981</NameCodeValue>
   <PublisherName>DE VECCHI EDICIONES, S.A.</PublisherName>
  </Publisher>
  <CityOfPublication>Barcelona</CityOfPublication>
  <CountryOfPublication>ES</CountryOfPublication>
  <PublishingStatus>04</PublishingStatus>
  <PublicationDate>20080930</PublicationDate>
  <Measure>
   <MeasureTypeCode>01</MeasureTypeCode>
   <Measurement>205</Measurement>
   <MeasureUnitCode>mm</MeasureUnitCode>
  </Measure>
  <Measure>
   <MeasureTypeCode>02</MeasureTypeCode>
   <Measurement>145</Measurement>
   <MeasureUnitCode>mm</MeasureUnitCode>
  </Measure>
  <SupplyDetail>
   <SupplierName>DE VECCHI EDICIONES, S.A.</SupplierName>
   <SupplierRole>01</SupplierRole>
   <SupplyToCountry>ES</SupplyToCountry>
   <ProductAvailability>20</ProductAvailability>
   <Price>
    <PriceTypeCode>04</PriceTypeCode>
    <PriceAmount>15.90</PriceAmount>
    <CurrencyCode>EUR</CurrencyCode>
    <TaxRateCode1>R</TaxRateCode1>
    <TaxRatePercent1>4.0</TaxRatePercent1>
    <TaxableAmount1>15.2885</TaxableAmount1>
   </Price>
  </SupplyDetail>
 </Product>
</ONIXMessage>
</getRecordsXResponse>
Los datos (nodos, ¿verdad?) que quiero extraer son el Título, Autor, Editorial y Pvp. Pero es que este .xml tiene más subnodos de los que he visto en toda la información que he estudiado (por ejemplo: http://delphiallimite.blogspot.com.e...os-xml-ii.html). Y no consigo, no se como manejar los nodos. Por ejemplo, editorial es "Publisher", pero dentro de este nodo hay dos nodos que quisiera extraer: NameCodeValue y PublisherName.
Un saludo, y gracias...
Miguel
  #2  
Antiguo 23-06-2012
Avatar de M.L.Casellas
M.L.Casellas M.L.Casellas is offline
Miembro
NULL
 
Registrado: sep 2011
Posts: 23
Poder: 0
M.L.Casellas Va por buen camino
Sigo aprendiendo lo que es XML. Me he comprado el libro de Miguel Ángel Acera García. También busco info en internet para lo que es el trabajarlo en Delphi. Pero sigo sin saber como hacer algo tan sencillo como buscar un campo y su tipo.
En el archivo .xml que obtengo y copié en mi anterior mensaje, la raiz de lo que es el libro es <Product> y ya dentro están los demás datos. Pero por ejemplo, el dato Título puede repetirse, pero dentro de ese nodo Título (<Title>) existen dos o más nodos, uno es <TitleType>. En mi caso quiero extraer el del dipo 01 (Es el que me interesa, porque tengo la tabla de códigos).
Código:
-<Title>
 <TitleType>01</TitleType>
 <TitleText>Curso rápido para desarrollar la memoria</TitleText>
 </Title> 
-<Title>
 <TitleType>10</TitleType>
 <TitleText>Curso rápido para desarrollar la memoria</TitleText>
 </Title>
¿Alguien puede decirme como acceder al elemento Title, pero el que es de tipo 01. Vamos, se trata de buscar campos y filtrar. Pero no tengo ni idea. Bueno, sigo estudiando el libro XML, aunque no trata Delphi, pero quiero profundizar en lo que es XML...

Un saludo :-)
  #3  
Antiguo 24-06-2012
Avatar de M.L.Casellas
M.L.Casellas M.L.Casellas is offline
Miembro
NULL
 
Registrado: sep 2011
Posts: 23
Poder: 0
M.L.Casellas Va por buen camino
He conseguido abrir el archivo .xml en un TClientDataSet, convirtiéndolo primero con XML Mapping Tool. Pero a parte de que esto es algo que debería hacer por código, así no me vale, además es que no lo ha leído bien algunos campos, la mayoría está bien, pero Título del libro sólo me saca uno y además dentro de otro Dataset.



Al final creo que haré yo la búsqueda manual en el fichero...


Un saludo :-)
  #4  
Antiguo 24-06-2012
Avatar de chamix
chamix chamix is offline
Registrado
NULL
 
Registrado: may 2012
Posts: 8
Poder: 0
chamix Va por buen camino
Hola, te iba a pasar un link, pero el foro no me deja poner enlaces...

Prueba a buscar: "delphi xml db files" en google y mira la segunda página: "Database Table to XML and Back - Using Delphi"

Espero que te sirva...

Saludos.
  #5  
Antiguo 27-06-2012
Avatar de M.L.Casellas
M.L.Casellas M.L.Casellas is offline
Miembro
NULL
 
Registrado: sep 2011
Posts: 23
Poder: 0
M.L.Casellas Va por buen camino
Arrow

Gracias chamix :-)


No puedo probar eso ahora, pero lo haré, me interesa mucho. El caso es que como sólo necesito extraer un registro, al final lo he solucionado de otra forma más conveniente.


Y he abierto un hilo nuevo con la solución y otro título más adecuado para quien necesite ayuda en un caso similar.


El hilo es este: http://clubdelphi.com/foros/showthre...192#post436192
Tal vez los administradores crean adecuado borrar este hilo…


¡Un saludo!
  #6  
Antiguo 27-06-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Sigue aquí.

Cierro este hilo.
Tema Cerrado



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Consulta que sale en blanco. aanil SQL 4 30-04-2010 22:27:49
VirtualTreeview asignar PopupMenu a nodos y subnodos JXJ Varios 0 02-10-2007 19:05:51
porque al imprimir con fast report 2.54, me sale una pagina en blanco ? JuanErasmo Impresión 1 16-08-2007 19:25:24
Sale la hoja en blanco en impresora HP cuando instalo mi aplicacion... JuanErasmo Impresión 0 25-09-2006 17:03:42
Reporte imprime no imprime sale en Blanco Alexander Impresión 0 22-08-2005 16:09:47


La franja horaria es GMT +2. Ahora son las 02:02:35.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi