Модераторы: diadiavova
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> В исходном XML не должны пересекаться, названия узлов? или могут? 
V
    Опции темы
lankin
Дата 5.10.2009, 13:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 377
Регистрация: 13.12.2006

Репутация: нет
Всего: нет



вот пример:
Код

<?xml version="1.0"?>
<ArrayOfVacancy xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <Vacancy>
    <Id xmlns="http://www.сайт.ru/">6185</Id>
    <CreationDatetime xmlns="http://www.сайт.ru/">2009-08-04T12:16:10</CreationDatetime>
    <ModificationDatetimeString xmlns="http://www.сайт.ru/">04.08.2009 12:16</ModificationDatetimeString>
    <Comment xmlns="http://www.сайт.ru/" />
    <ShowsCount xmlns="http://www.сайт.ru/">13</ShowsCount>
    <Company xmlns="http://www.сайт.ru/">
      <Id>192</Id>
      <Name>Этис-недвижимость</Name>
      <Description>Все услуги на рыне недвижимости. Жилелям Амурского поселка - скидка на услуги -20%.</Description>
      <Inn xsi:nil="true" />
    </Company>
    <Title xmlns="http://www.сайт.ru/">Сварщик</Title>
    <TextFormattedPrice xmlns="http://www.сайт.ru/">не указана</TextFormattedPrice>
    <ActualDatetime xmlns="http://www.сайт.ru/">2009-08-11T14:11:52</ActualDatetime>
    <UniqueId xmlns="http://www.сайт.ru/">3b4520f3-229b-4145-9f87-8da42d86d900</UniqueId>
    <Location xmlns="http://www.сайт.ru/">
      <Id>21</Id>
    </Location>
    <ViewURL xmlns="http://www.сайт.ru/">/rabota/vacancy/Show.aspx?id=6185</ViewURL>
    <AgeFrom xsi:nil="true" xmlns="http://www.сайт.ru/" />
    <AgeTo xsi:nil="true" xmlns="http://www.сайт.ru/" />
    <EducationLevel xmlns="http://www.сайт.ru/">
      <Id>6</Id>
      <Name>Незаконченное высшее</Name>
      <ShortName>н/в</ShortName>
    </EducationLevel>
    <Seniority xmlns="http://www.сайт.ru/">
      <Id>18</Id>
      <Value>16</Value>
    </Seniority>
    <WorkSchedule xmlns="http://www.сайт.ru/">
      <Id>5</Id>
      <Name>Удаленно / на дому</Name>
    </WorkSchedule>
  </Vacancy>
</ArrayOfVacancy>


как видите, здесь у вакансий есть ID и у компаний тоже и вообще много таких пересекающихся моментов.
К чему все это я - у меня в итоге получается пустой rss, хотя xslt-шаблон, которым я пользуюсь нормально преобразовывал вот этот исходник:
Код

<?xml version="1.0"?>
<ArrayOfVacancy xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <Vacancy>
    <Id xmlns="http://www.сайт.ru/">6185</Id>
    <CreationDatetime xmlns="http://www.сайт.ru/">2009-08-04T12:16:10</CreationDatetime>
    <ModificationDatetimeString xmlns="http://www.сайт.ru/">04.08.2009 12:16</ModificationDatetimeString>
    <Comment xmlns="http://www.сайт.ru/" />
    <ShowsCount xmlns="http://www.сайт.ru/">13</ShowsCount>
    <Title xmlns="http://www.сайт.ru/">Сварщик</Title>
    <TextFormattedPrice xmlns="http://www.сайт.ru/">не указана</TextFormattedPrice>
    <ActualDatetime xmlns="http://www.сайт.ru/">2009-08-11T14:11:52</ActualDatetime>
    <UniqueId xmlns="http://www.сайт.ru/">3b4520f3-229b-4145-9f87-8da42d86d900</UniqueId>
    <ViewURL xmlns="http://www.сайт.ru/">/rabota/vacancy/Show.aspx?id=6185</ViewURL>
    <AgeFrom xsi:nil="true" xmlns="http://www.сайт.ru/" />
    <AgeTo xsi:nil="true" xmlns="http://www.сайт.ru/" />
  </Vacancy>
</ArrayOfVacancy>


Как видите,  это тот же XML, только в него не добавлены компания и т.п. узлы внутри Вакансии.

Вот xslt-шаблон:
Код

<?xml version="1.0" encoding="utf-8" ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl">
  <xsl:output method="xml" encoding="utf-8" version="1.0" standalone="yes"/>

  <xsl:param name="main_url" />

  <xsl:template match="/">
    <xsl:element name="rss">
      <xsl:attribute name="version">2.0</xsl:attribute>
      <xsl:element name="channel">
        <xsl:element name="title">Работа</xsl:element>
        <xsl:element name="link">
          <xsl:value-of select="$main_url"/>
        </xsl:element>
        <xsl:element name="description">Курсы сайта Работа</xsl:element>
        <xsl:for-each select="ArrayOfEducationAd/EducationAd">
          <xsl:variable name="b">
            <xsl:value-of select="ViewURL"/>
          </xsl:variable>
          <xsl:element name="item">
            <xsl:element name="title">
              <xsl:value-of select="Title"/>
            </xsl:element>
            <xsl:element name="link">
              <xsl:value-of select="concat($main_url,$b)"/>
            </xsl:element>
            <xsl:element name="description">
              <xsl:value-of select="Description"></xsl:value-of>
            </xsl:element>
          </xsl:element>
        </xsl:for-each>
      </xsl:element>
    </xsl:element>
  </xsl:template>
</xsl:stylesheet>

Тут в качестве main_url передается название домена сайта, чтоб можно было URL составить потом.
В общем у меня не получается преобразовать. Все элементы - пустые, как если бы исходник был пустой, а он как раз заполнен данными.
Может ли это быть следствием добавления внутрь Вакансии еще узлов, в которых, в свою очередь, тоже есть узлы? Когда был один уровень (список вакансий/вакансия) все работало на ура.

Это сообщение отредактировал(а) lankin - 5.10.2009, 13:57
PM MAIL   Вверх
lankin
Дата 6.10.2009, 07:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 377
Регистрация: 13.12.2006

Репутация: нет
Всего: нет



Нашел ошибку. Прибил в XML нэймспэйс  xmlns="http://www.сайт.ru/". Из-за него ничего не работало.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "XML/XSLT"
diadiavova

Прежде чем опубликовать вопрос, попробуйте воспользоваться поиском - возможно тема уже поднималась.

Также рекомендуем Вам зайти в раздел FAQ ,раздел дополняется и, возможно, там вы увидите готовое решение.

Для ответов на часто задаваемые вопросы существует FAQ раздела. Новости можно публиковать в разделе новостей. Для статей так же есть специальный раздел

Желаем удачи в Вашем деле!


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, diadiavova.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | XML, XSL | Следующая тема »


 




[ Время генерации скрипта: 0.0391 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.