предупреждение: не удалось загрузить внешний объект

Я обрабатываю XML-документ из каталога A в X (X -> A), используя таблицу стилей XSLT, которая использует функцию document() для динамического построения пути каталога к другому XML-документу в N.. , эта часть работает как шарм.

Документ XML в N дополнительно требует ввода от узлов в документе XML в (Y -> A); когда я вызываю свою таблицу стилей, она возвращает ошибку ниже.

предупреждение: не удалось загрузить внешний объект "..

Я явно указываю своему процессору xslt обрабатывать все мои инструкции по обработке относительно исходного XML-документа НЕ таблицы стилей по умолчанию.

Что я могу делать неправильно?

dir/
├── X
│   ├── A
│   │   ├── N
│   │   ├── O
│   │   ├── P
├── Y
│   ├── A
│   ├── B
│   ├── C
│   ├── D
│   ├── E
│   └── F

Мои файлы XML разбиты на куски, и мне нужно динамически создавать списки узлов.


person lightonphiri    schedule 02.08.2011    source источник
comment
нашел решение этой проблемы ... если кто-то столкнется с этим, см. обновление № 1 в исходном сообщении.   -  person lightonphiri    schedule 03.08.2011
comment
Эта ошибка также появляется, когда файл не может быть найден. Дерьмовое сообщение об ошибке, если вы спросите меня.   -  person Jason Axelson    schedule 26.06.2012


Ответы (2)


Оказывается, мне пришлось явно предварительно добавить файл:/// к полному пути к файлу xml, который я proc

person lightonphiri    schedule 17.12.2012

xsltproc : предупреждение: не удалось загрузить внешний объект -o

Ошибка:

  • xsltproc a.xsl a.xml -o a.html

Работает:

  • xsltproc -o a.html a.xsl a.xml
  • xsltproc a.xsl a.xml > a.html

[victoria@victoria ~]$ which xsltproc
  /usr/bin/xsltproc

[victoria@victoria ~]$ xsltproc --version
  Using libxml 20910, libxslt 10134-GITv1.1.34 and libexslt 820
  xsltproc was compiled against libxml 20910, libxslt 10134 and libexslt 820
  libxslt 10134 was compiled against libxml 20910
  libexslt 820 was compiled against libxml 20910

[victoria@victoria ~]$ xsltproc a.xsl a.xml -o a.html
  warning: failed to load external entity "-o"
  unable to parse -o

[victoria@victoria xslt_test]$ xsltproc | head -n1
    Usage: xsltproc [options] stylesheet file [file ...]

[victoria@victoria ~]$ xsltproc -o a.html a.xsl a.xml
[victoria@victoria ~]$ ## command completed; HTML page looks fine ...

[victoria@victoria ~]$ cat ~/a.xsl
  <?xml version="1.0" encoding="UTF-8"?>
  <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:template match="/">
  <html> 
  <body>
    <h2>My CD Collection</h2>
    <table border="1">
      <tr bgcolor="#9acd32">
        <th style="text-align:left">Title</th>
        <th style="text-align:left">Artist</th>
      </tr>
      <xsl:for-each select="catalog/cd">
      <tr>
        <td><xsl:value-of select="title"/></td>
        <td><xsl:value-of select="artist"/></td>
      </tr>
      </xsl:for-each>
    </table>
  </body>
  </html>
  </xsl:template>
  </xsl:stylesheet>

[victoria@victoria ~]$ cat ~/a.xml
  <?xml version="1.0" encoding="UTF-8"?>

  <!-- https://www.w3schools.com/xml/xsl_intro.asp -->
  <!-- https://www.w3schools.com/xml/tryxslt.asp?xmlfile=cdcatalog&xsltfile=cdcatalog -->

  <catalog>
    <cd>
      <title>Empire Burlesque</title>
      <artist>Bob Dylan</artist>
      <country>USA</country>
      <company>Columbia</company>
      <price>10.90</price>
      <year>1985</year>
    </cd>
    <cd>
      <title>Hide your heart</title>
      <artist>Bonnie Tyler</artist>
      <country>UK</country>
      <company>CBS Records</company>
      <price>9.90</price>
      <year>1988</year>
    </cd>
  </catalog>

[victoria@victoria ~]$ 

введите здесь описание изображения

person Victoria Stuart    schedule 28.10.2020