Меню

Проверка преобразования xslt ошибка

Я использую DITA OT для преобразования XML в xhtml. Мой xsl выглядит как

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE some_name [ 
<!ENTITY nbsp " "> 
]>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
 xmlns:saxon="http://icl.com/saxon" extension-element-prefixes="saxon">


 <xsl:import href="../map2xhtmtoc.xsl"/>
 <!--<xsl:import href="result-doc.xsl"/>-->
 <!--<xsl:import href="custom-ecollege-dita2xhtml.xsl"/>-->
 <xsl:output name="html" method="html" indent="yes" encoding="UTF-8"/>

 <!-- Define a newline character -->
 <xsl:variable name="newline">
  <xsl:text>
  </xsl:text>
 </xsl:variable>

 <xsl:template match="/">
    <html>
    <head>
      <body>
          <xsl:apply-templates select="myProduct"/>
      </body>
    </head>
    </html>
 </xsl:template>
 <!--other templates goes here-->
 <div class="floatRight"/>
 <div class="headerSeparator">
  <xsl:text disable-output-escaping="yes">&amp;nbsp;</xsl:text>
 </div>
 </xsl:template>

 </xsl:stylesheet>

Теперь, если я попытался выполнить этот xsl против моего xml для преобразования xhtml, используя DITA OT jar cmd.

java -jar .libdost.jar /i:samples/mycompany/myContent/myContent.ditamap /transtype:xhtml /xsl:xsl/mycompany/custom-map2xhtml.xsl

После выполнения указанной выше команды я получаю следующую ошибку.

[xslt] D:DITA-OT1.5.2xslmycompanycustom-map2xhtm.xsl:21: Fatal Error! When 'standalone' or 'doctype-system' is specified, the document must be well-formed; but this document contains a top-level text node
[xslt] Failed to process null

Я ломаю себе голову, чтобы узнать, почему возникает эта ошибка.

Спасибо.

2 ответа

Лучший ответ

this document contains a top-level text node

Вы можете показать нам конец таблицы стилей XSLT? Есть ли текст после последнего </xsl:stylesheet>? Это могло бы вызвать эту ошибку.

Обновить

Как заметил Димитр, начальный / конечный теги <xsl:template> несбалансированы, поэтому, если вы не показываете только часть своего XSLT, это необходимо исправить.

Однако я согласен с @Tim C, что вам, вероятно, вообще не нужно объявление DOCTYPE в вашем XSLT. Вы не пытаетесь использовать объект &nbsp; в таблице стилей, вы просто пытаетесь создать его. Поэтому, если вы удалите оператор DOCTYPE из таблицы стилей, вы ничего не потеряете.

Более того, в отличие от @Tim, DOCTYPE не должен объявлять объект nbsp в выходном HTML, потому что он уже предопределен в HTML.

Наконец, я бы не согласился с @Tim на способ вывода неразрывного пробела в HTML. Отключить-вывод-экранирование — почти всегда неправильный подход, и он происходит из-за непонимания того, как работают синтаксический анализ и сериализация. Самый простой способ вывести неразрывный пробел в XSLT — напрямую использовать числовую сущность:

<div class="headerSeparator"> </div>

Это выведет неразрывный пробел.

«Но, — скажете вы, — я хочу, чтобы он выводил &nbsp;

Это может случиться; когда output-method = «html», сериализация может использовать символьные сущности, встроенные в HTML, для выражения подобных символов. Или для сериализации можно использовать   или просто встроить неразрывный пробел напрямую. Все они являются законным HTML, и все они эквивалентны. Тогда возникает вопрос: почему вы хотите, чтобы он был сериализован как &nbsp;, а не как какой-то другой эквивалент?

Если я неправильно понял, что вы пытаетесь сделать, поясните, где вы хотите разместить &nbsp; и почему эта конкретная форма имеет значение.


3

LarsH
20 Окт 2011 в 01:10

Это может быть связано с объявлением DOCTYPE вверху страницы. Это также может быть текстовый узел верхнего уровня, на который указывает ошибка.

Вы хотите, чтобы DOCTYPE отображался в создаваемом HTML? Если это так, его, вероятно, следует удалить с того места, где он находится, и в вашем первом шаблоне выполните следующие действия:

<xsl:template match="/">
   <xsl:text disable-output-escaping = "yes"><![CDATA[
      <!DOCTYPE some_name [  <!ENTITY nbsp " ">  ]> 
   ]]>
   </xsl:text>

Затем, когда XSLT преобразован, он выдаст следующий

<!DOCTYPE some_name [  <!ENTITY nbsp " ">  ]> 
<html>


0

Tim C
19 Окт 2011 в 15:32

У меня есть следующий xml:

<RootNode xmlns="http://someurl/path/path/path">
    <Child1>
        <GrandChild1>Value</GrandChild1>
        <!-- Lots more elements in here-->
    </Child1>
</RootNode>

У меня xslt следующий:

<xsl:stylesheet version="1.0" xmlns="http://someurl/path/path/path" xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xsl:output method="xml" encoding="UTF-8" indent="yes"/>
    <xsl:template match="/">
        <NewRootNode xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
            <NewChild1>
                <xsl:for-each select="RootNode/Child1">
                    <NewNodeNameHere>
                        <xsl:value-of select="GrandChild1"/>
                    </NewNodeNameHere>
                <!-- lots of value-of tags in here -->
                </xsl:for-each>
            </NewChild1>
        </NewRootNode >
    </xsl:template>
</xsl:stylesheet>

Проблема: это мой результат:

<?xml version="1.0" encoding="utf-8"?>
<NewRootNode xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <NewChild1 />
</NewRootNode>

Я ожидаю увидеть:

<?xml version="1.0" encoding="utf-8"?>
<NewRootNode xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <NewChild1>
        <NewNodeNameHere>Value</NewNodeNameHere>
        <!-- Other new elements with values from the xml file -->
    </NewChild1>
</NewRootNode>

Мне не хватает информации внутри NewChild1, которая должна быть там.

Я думаю, что мой выбор для каждого правильный, поэтому единственное, о чем я могу думать, это проблема с пространством имен в Xml и пространством имен в xslt. Может ли кто-нибудь увидеть, что я делаю неправильно?

Всем привет.
Начал изучать xml и xsl. написал свой первый код, он не работает, почему? Вот фалй xml.xml:

XML
1
2
3
4
5
6
7
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="one.xsl"?>
<plan>
    <sec>
        <name>some text</name>
    </sec>
</plan>

Вот файл one.xsl:

XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/Transform">
<xsl:template match="plan">
    <html>
        <xsl:apply-templates/>
    </html>
</xsl:template>
<xsl:template match="sec">
    <p>
        <xsl:value-of select="name"/>
    </p>
</xsl:template>
</xsl:stylesheet>

Как Я понимаю при запуске xml файла в браузере одлжна формироваться html страничка. Но в ие появляется просто белый экран, а в опере выдает ошибку:
This document had an invalid XSLT stylesheet. Error message from the XSLT engine:
Error: missing required version attribute
Но Я пробывал указать версию, не помогает.
Скажите пожалуйста, где у меня ошибка?

__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь

Firefox tells me «Error during XSLT transformation: XSLT transformation failed.» for an XML file that uses the following XSL file:

<?xml version='1.0' encoding='UTF-8'?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:dxp='http://schemas.google.com/analytics/2009' 
xmlns:gd='http://schemas.google.com/g/2005'
xmlns:fn='http://www.w3.org/2005/xpath-functions'>
<xsl:output method="html"/>
<xsl:template match="/">
<html><head><title>...</title></head><body>
<table frame='border' rules='all'>
<tr><th>site</th><th>week</th><th>pages</th><th>pageviews</th></tr>
<xsl:for-each select='feeds/feed/week'>
  <xsl:for-each-group select='entry' group-by='fn:concat(
    if (fn:matches(dxp:dimension[@name="ga:pagePath"]/@value, "^/sales"))
      then "/sales"
      else "non-/sales",
    " referred from ",
    if (fn:matches(dxp:dimension[@name="ga:referralPath"]/@value, "^/forsale"))
      then "/forsale"
      else "non-/forsale"
    )'>
    <tr>
      <td><xsl:value-of select='../dxp:tableName'/></td>
      <td>
        <xsl:value-of select='../dxp:startDate'/>-<xsl:value-of select='../dxp:endDate'/>
      </td>
      <td><xsl:value-of select='current-grouping-key()'/></td>
      <td><xsl:value-of select="sum(current-group()/dxp:metric/@value)"/></td>
    </tr>
  </xsl:for-each-group>
</xsl:for-each>
</table></body></html>
</xsl:template>
</xsl:stylesheet>

I can’t figure out what might be wrong with this. Anyone know?

(Obviously, if further info is needed from me in order that someone be able to answer this, I’ll be glad to provide that info: please comment asking for it. I don’t even know what kind of info might be helpful.)


EDIT: Someone mentioned in an answer that my including the XML file might help. It’s very long, but its general structure is:

<?xml version='1.0' encoding='UTF-8'?>
<?xml-stylesheet type='text/xsl' href='./foo.xsl'?>
<feeds xmlns:dxp='http://schemas.google.com/analytics/2009' 
xmlns:gd='http://schemas.google.com/g/2005' >
<feed><week>
    <id>http://www.google.com/analytics/feeds/data?ids=ga:bar&amp;dimensions=ga:pagePath,ga:referralPath&amp;metrics=ga:pageviews&amp;filters=ga:medium%3D@referral&amp;start-date=2011-12-11&amp;end-date=2011-12-17</id>
    <link rel='self' type='application/atom+xml' href='https://www.google.com/analytics/feeds/data?max-results=10&amp;end-date=2011-12-17&amp;start-date=2011-12-11&amp;metrics=ga%3Apageviews&amp;ids=ga%3Abar&amp;dimensions=ga%3ApagePath%2Cga%3AreferralPath&amp;filters=ga%3Amedium%3D%40referral'/>
    <link rel='next' type='application/atom+xml' href='https://www.google.com/analytics/feeds/data?start-index=11&amp;max-results=10&amp;end-date=2011-12-17&amp;start-date=2011-12-11&amp;metrics=ga%3Apageviews&amp;ids=ga%3Abar&amp;dimensions=ga%3ApagePath%2Cga%3AreferralPath&amp;filters=ga%3Amedium%3D%40referral'/>
        <dxp:metric confidenceInterval='0.0' name='ga:pageviews' type='integer' value='9999'/>
        <dxp:tableName>bar</dxp:tableName>
    <dxp:endDate>2011-12-17</dxp:endDate>
    <dxp:startDate>2011-12-11</dxp:startDate>
    <entry gd:etag='W/&quot;baz.&quot;' gd:kind='analytics#datarow'>
        <dxp:dimension name='ga:pagePath' value='/'/>
        <dxp:dimension name='ga:referralPath' value='/'/>
        <dxp:metric confidenceInterval='0.0' name='ga:pageviews' type='integer' value='999'/>
    </entry>
    <entry gd:etag='W/&quot;baz.&quot;' gd:kind='analytics#datarow'>
        <dxp:dimension name='ga:pagePath' value='/'/>
        <dxp:dimension name='ga:referralPath' value='/xyzzy1'/>
        <dxp:metric confidenceInterval='0.0' name='ga:pageviews' type='integer' value='999'/>
    </entry>
</week>
</feed>
<feed><week>
    <id>http://www.google.com/analytics/feeds/data?ids=ga:bar2&amp;dimensions=ga:pagePath,ga:referralPath&amp;metrics=ga:pageviews&amp;filters=ga:medium%3D@referral&amp;start-date=2011-12-11&amp;end-date=2011-12-17</id>
    <link rel='self' type='application/atom+xml' href='https://www.google.com/analytics/feeds/data?max-results=10&amp;end-date=2011-12-17&amp;start-date=2011-12-11&amp;metrics=ga%3Apageviews&amp;ids=ga%3Abar2&amp;dimensions=ga%3ApagePath%2Cga%3AreferralPath&amp;filters=ga%3Amedium%3D%40referral'/>
    <link rel='next' type='application/atom+xml' href='https://www.google.com/analytics/feeds/data?start-index=11&amp;max-results=10&amp;end-date=2011-12-17&amp;start-date=2011-12-11&amp;metrics=ga%3Apageviews&amp;ids=ga%3Abar2&amp;dimensions=ga%3ApagePath%2Cga%3AreferralPath&amp;filters=ga%3Amedium%3D%40referral'/>
        <dxp:metric confidenceInterval='0.0' name='ga:pageviews' type='integer' value='9999'/>
        <dxp:tableName>bar2</dxp:tableName>
    <dxp:endDate>2011-12-17</dxp:endDate>
    <dxp:startDate>2011-12-11</dxp:startDate>
    <entry gd:etag='W/&quot;baz.&quot;' gd:kind='analytics#datarow'>
        <dxp:dimension name='ga:pagePath' value='/'/>
        <dxp:dimension name='ga:referralPath' value='/'/>
        <dxp:metric confidenceInterval='0.0' name='ga:pageviews' type='integer' value='999'/>
    </entry>
    <entry gd:etag='W/&quot;baz.&quot;' gd:kind='analytics#datarow'>
        <dxp:dimension name='ga:pagePath' value='/'/>
        <dxp:dimension name='ga:referralPath' value='/xyzzy2'/>
        <dxp:metric confidenceInterval='0.0' name='ga:pageviews' type='integer' value='999'/>
    </entry>
</week>
</feed>
</feeds>

Firefox tells me «Error during XSLT transformation: XSLT transformation failed.» for an XML file that uses the following XSL file:

<?xml version='1.0' encoding='UTF-8'?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:dxp='http://schemas.google.com/analytics/2009' 
xmlns:gd='http://schemas.google.com/g/2005'
xmlns:fn='http://www.w3.org/2005/xpath-functions'>
<xsl:output method="html"/>
<xsl:template match="/">
<html><head><title>...</title></head><body>
<table frame='border' rules='all'>
<tr><th>site</th><th>week</th><th>pages</th><th>pageviews</th></tr>
<xsl:for-each select='feeds/feed/week'>
  <xsl:for-each-group select='entry' group-by='fn:concat(
    if (fn:matches(dxp:dimension[@name="ga:pagePath"]/@value, "^/sales"))
      then "/sales"
      else "non-/sales",
    " referred from ",
    if (fn:matches(dxp:dimension[@name="ga:referralPath"]/@value, "^/forsale"))
      then "/forsale"
      else "non-/forsale"
    )'>
    <tr>
      <td><xsl:value-of select='../dxp:tableName'/></td>
      <td>
        <xsl:value-of select='../dxp:startDate'/>-<xsl:value-of select='../dxp:endDate'/>
      </td>
      <td><xsl:value-of select='current-grouping-key()'/></td>
      <td><xsl:value-of select="sum(current-group()/dxp:metric/@value)"/></td>
    </tr>
  </xsl:for-each-group>
</xsl:for-each>
</table></body></html>
</xsl:template>
</xsl:stylesheet>

I can’t figure out what might be wrong with this. Anyone know?

(Obviously, if further info is needed from me in order that someone be able to answer this, I’ll be glad to provide that info: please comment asking for it. I don’t even know what kind of info might be helpful.)


EDIT: Someone mentioned in an answer that my including the XML file might help. It’s very long, but its general structure is:

<?xml version='1.0' encoding='UTF-8'?>
<?xml-stylesheet type='text/xsl' href='./foo.xsl'?>
<feeds xmlns:dxp='http://schemas.google.com/analytics/2009' 
xmlns:gd='http://schemas.google.com/g/2005' >
<feed><week>
    <id>http://www.google.com/analytics/feeds/data?ids=ga:bar&amp;dimensions=ga:pagePath,ga:referralPath&amp;metrics=ga:pageviews&amp;filters=ga:medium%3D@referral&amp;start-date=2011-12-11&amp;end-date=2011-12-17</id>
    <link rel='self' type='application/atom+xml' href='https://www.google.com/analytics/feeds/data?max-results=10&amp;end-date=2011-12-17&amp;start-date=2011-12-11&amp;metrics=ga%3Apageviews&amp;ids=ga%3Abar&amp;dimensions=ga%3ApagePath%2Cga%3AreferralPath&amp;filters=ga%3Amedium%3D%40referral'/>
    <link rel='next' type='application/atom+xml' href='https://www.google.com/analytics/feeds/data?start-index=11&amp;max-results=10&amp;end-date=2011-12-17&amp;start-date=2011-12-11&amp;metrics=ga%3Apageviews&amp;ids=ga%3Abar&amp;dimensions=ga%3ApagePath%2Cga%3AreferralPath&amp;filters=ga%3Amedium%3D%40referral'/>
        <dxp:metric confidenceInterval='0.0' name='ga:pageviews' type='integer' value='9999'/>
        <dxp:tableName>bar</dxp:tableName>
    <dxp:endDate>2011-12-17</dxp:endDate>
    <dxp:startDate>2011-12-11</dxp:startDate>
    <entry gd:etag='W/&quot;baz.&quot;' gd:kind='analytics#datarow'>
        <dxp:dimension name='ga:pagePath' value='/'/>
        <dxp:dimension name='ga:referralPath' value='/'/>
        <dxp:metric confidenceInterval='0.0' name='ga:pageviews' type='integer' value='999'/>
    </entry>
    <entry gd:etag='W/&quot;baz.&quot;' gd:kind='analytics#datarow'>
        <dxp:dimension name='ga:pagePath' value='/'/>
        <dxp:dimension name='ga:referralPath' value='/xyzzy1'/>
        <dxp:metric confidenceInterval='0.0' name='ga:pageviews' type='integer' value='999'/>
    </entry>
</week>
</feed>
<feed><week>
    <id>http://www.google.com/analytics/feeds/data?ids=ga:bar2&amp;dimensions=ga:pagePath,ga:referralPath&amp;metrics=ga:pageviews&amp;filters=ga:medium%3D@referral&amp;start-date=2011-12-11&amp;end-date=2011-12-17</id>
    <link rel='self' type='application/atom+xml' href='https://www.google.com/analytics/feeds/data?max-results=10&amp;end-date=2011-12-17&amp;start-date=2011-12-11&amp;metrics=ga%3Apageviews&amp;ids=ga%3Abar2&amp;dimensions=ga%3ApagePath%2Cga%3AreferralPath&amp;filters=ga%3Amedium%3D%40referral'/>
    <link rel='next' type='application/atom+xml' href='https://www.google.com/analytics/feeds/data?start-index=11&amp;max-results=10&amp;end-date=2011-12-17&amp;start-date=2011-12-11&amp;metrics=ga%3Apageviews&amp;ids=ga%3Abar2&amp;dimensions=ga%3ApagePath%2Cga%3AreferralPath&amp;filters=ga%3Amedium%3D%40referral'/>
        <dxp:metric confidenceInterval='0.0' name='ga:pageviews' type='integer' value='9999'/>
        <dxp:tableName>bar2</dxp:tableName>
    <dxp:endDate>2011-12-17</dxp:endDate>
    <dxp:startDate>2011-12-11</dxp:startDate>
    <entry gd:etag='W/&quot;baz.&quot;' gd:kind='analytics#datarow'>
        <dxp:dimension name='ga:pagePath' value='/'/>
        <dxp:dimension name='ga:referralPath' value='/'/>
        <dxp:metric confidenceInterval='0.0' name='ga:pageviews' type='integer' value='999'/>
    </entry>
    <entry gd:etag='W/&quot;baz.&quot;' gd:kind='analytics#datarow'>
        <dxp:dimension name='ga:pagePath' value='/'/>
        <dxp:dimension name='ga:referralPath' value='/xyzzy2'/>
        <dxp:metric confidenceInterval='0.0' name='ga:pageviews' type='integer' value='999'/>
    </entry>
</week>
</feed>
</feeds>


Форум программистов Vingrad

Новости ·
Фриланс ·
FAQ

Правила ·
Помощь ·
Рейтинг ·
Избранное ·
Поиск ·
Участники

Форум -> Технологии и алгоритмы -> XML, XSL

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

Поиск:

Ответ в темуСоздание новой темы
Создание опроса
> XSLT 2.0 Ошибка преобразования!!! Браузер выводит ошибку преобразования 

:(

   

Опции темы

zeusakm
Дата 25.10.2008, 21:10 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Новичок

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

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

С xslt 1.0 работал все что выводил через Firefox запуская XML в котором цепляется таблица XSLT 1.0 версии работает все норм.
Тут попробовал то же самое с XSLT 2.0 ничего не выходит — пишет: 
Ошибка при XSLT преобразовании: Ошибка преобразования XSLT.
код XML такой:

Это сообщение отредактировал(а) zeusakm — 25.10.2008, 22:21

PM MAIL   Вверх
zeusakm
Дата 25.10.2008, 22:14 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Новичок

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

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

Код

<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="nodes.xsl"?>
<doc>
    <heading>Oksana heading!!!</heading>
    <para>1.1</para>
    <para>1.2</para>
    <para>1.3</para>
    <heading>Arthur heading programmer</heading>
    <para>1.4</para>
    <para>1.5</para>
    <para>1.6</para>
    <heading>All other famalyes</heading>
    <para>1.7</para>
    <para>1.8</para>        
</doc>

Так же XSL код:

Код

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml">
        <xsl:template match="/doc">
            <xsl:for-each-group select="*" group-starting-with="heading">
                <xsl:apply-templates select="current-group()[self::para]"/>
            </xsl:for-each-group>
        </xsl:template>
    </xsl:stylesheet>

Наверняка для профи в xml/xslt, эта проблема — не проблема и решить ее можно легко. 
Так что буду рад Вашей поддержке =)

Это сообщение отредактировал(а) zeusakm — 25.10.2008, 23:43

PM MAIL   Вверх
zeusakm
Дата 26.10.2008, 10:16 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Новичок

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

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

Ппц 35 просмотров и ни одного ответа?! Видимо действительно для России XSLT 2.0 слишком новая технология. =)) 

PM MAIL   Вверх
JVM
Дата 26.10.2008, 15:40 (ссылка)
| (нет голосов)
Загрузка ... Загрузка …




Быстрая цитата

Цитата

Бывалый
*

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

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

Ну конечно. Особенно если учесть, что для преобразования XML использовать Firefox — его же в России пишут.

PM MAIL   Вверх



















Ответ в темуСоздание новой темы
Создание опроса
Правила форума «XML/XSLT»
diadiavova

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

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

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

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


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

 

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

Подписаться на тему |
Подписка на этот форум |
Скачать/Распечатать тему

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

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

��������� ������ �������

��������� ������ �������

��� ������������� JavaScript ��� �������� ���������� XML � XSL � ������ � ���� ����� �����, ��� �������� �� ������� �������. � ���������� ������� � ������� �� �������, ������ ��������� �Error!� � ��������-��������� <DIV> ��������� HTML, �� ��� �� ����� ������������. ��� �������� �������������� ����������?�

� ��������� ������� � �������� ������ ������ �������, ������� ������ ��� <PLANET>planets.xml �� ��� <PLANETS>:

<?xml version="1.0"?>
<?xml-stylesheet type="text/xml" href="planets.xsl"?>
<PLANETS>
�<PLANETS>
� <NAME>Mercury</NAME>
��<MASS UNITS="(Earth = 1)">.0553</MASS>
��<DAY UNITS="days">58.65</DAY>
��<RADIUS UNITS="miles">1516</RADIUS>
��<DENSITY UNITS="(Earth = 1)">.983</DENSITY>
��<DISTANCE UNITS="million miles">43.4</DISTANCE><!--B ���������-->
�</PLANET>
�.
�.
�.

� ��������� �������� validateOnParse ������� XMLDocumenttrue (�������� �� ��������� � false, ��� �������� ���������� ��������), ������� ��������� MSXML ������� ��� ������ �������. ������ XMLDocument �������� ������ parseError, � ���� ��� �������� errorCode �� ����� ����, ��� �������� ������� ������. ������ � ���� �� ������ ������� ��������� �Error!�, � ������������ ������ ��� ������ ����� ������� getError, ������� ���������� ������ � ����������� � ����� � ������� ������.

� ����� ��������� ���� �������������� ���������� � ��������� �������� <url, line, linepos � reason ������� parseError ��� ����, ����� ���������� ��������� �������� ����, ������, ������� ������ � �� �������� (������� 10.1).�

������� 10.1. �������� �������������� XSLT � ����������� ������ �������

<HTML>
�<HEAD>
� <TITLE>XSLT Using JavaScript</TITLE>
�� <SCRIPT LANGUAGE="JavaScript">
��� function xslt() {
��� var XMLDocument = new ActiveXObject('MSXML2.DOMDocument.3.0');
�� �var XSLDocument = new ActiveXObject('MSXML2.DOMDocument.3.0');
�� �var HTMLtarget = document.all['targetDIV'];
��� XMLDocument.validateOnParse = true;
��� XMLDocument.load('planets.xml');
�� �if (XMLDocument.parseError.errorCode != 0) {
��� �HTMLtarget.innerHTML = getError(XMLDocument);
��� �return false;
��� }
��� XSLDocument.validateOnParse = true;
�� �XSLDocument.load('planets.xsl');
�� �if (XSLDocument.parseError.errorCode != 0) {
��� �HTMLtarget.innerHTML = getError(XSLDocument);
��� �return false;
��� }
��� HTMLtarget.innerHTML = XMLDocument.transformNode(XSLDocument);
�� �return true;
�� }
�� function getError(errorObject) {
��� var Error = new String;
��� Error = "Error. " + errorObject.parseError.url + "<BR>" +
��� �"Line: " + errorObject.parseError.line + "<BR>" +
���� "Character: " + errorObject.parseError.linepos + "<BR>" +
�� ��"Description: " + errorObject.parseError.reason;
�� �return Error;
�� }
� </SCRIPT>
�</HEAD>
�<BODY>
��<DIV>
��</DIV>
�</BODY>
</HTML>

��������� ����� ������� �� ���. 10.2, ��� �������� ��������� ������ ����, ����� ������ � �������� ������ ����������� MSXML. ���� �� ����������� ������������� �������������� XSLT � Internet Explorer, ����� ������������ ������������� ���� ��������� ��������� �������, ��������� �������� ������ ������� ������������� �����.

���. 10.2. ��������� ������ �������

���� ��� � �������������� ��� ������ ���������� MSXML ������ �������� �������, �� ����� � ��� ���������� ����������� ������ ������������. ��������, � ��������� ������� � ������������ XSLT � Internet Explorer ��� ���������� ������ ������ � HTML-������� �� ������� ������. ��� ����� � ���� ���������� � ��������� ����� ������ ������� ������.

0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

А вот еще интересные материалы:

  • Яшка сломя голову остановился исправьте ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного исправьте ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного где ошибка
  • Проверка ссд диска на наличие ошибок скачать
  • Проверка предложений на немецком на ошибки