У меня есть документ xml, в котором xinclude другие файлы xml. Все эти xml-файлы содержат относительные пути для изображений, которые находятся в разных источниках.Создать список путей изображения в документах XML
<chapter xml:id="chapter1">
<title>First chapter in Main Document</title>
<section xml:id="section1">
<title>Section 1 in Main Document</title>
<para>this is paragraph<figure>
<title>Car images</title>
<mediaobject>
<imageobject>
<imagedata fileref="images/image1.jpg"/>
</imageobject>
</mediaobject>
</figure></para>
</section>
<xi:include href="../doc/section2.xml"/>
<xi:include href="../doc/section3.xml"/>
</chapter>
Здесь будут представлены документы раздела2 и section3 xml.
<section xml:id="section2"
<title>Main Documentation Section2</title>
<para>This is also paragraph <figure>
<title>Different Images</title>
<mediaobject>
<imageobject>
<imagedata fileref="images/image2.jpg"/>
</imageobject>
</mediaobject>
</figure></para>
</section>
Я хочу создать таблицу стилей XSLT 1.0, которая будет генерировать список путей изображения во всех xml-документах. Я собираюсь скопировать те изображения, которые находятся в разных источниках, в папку с одним изображением. Затем я смогу использовать этот список путей изображения для копирования этих изображений. И было бы замечательно, если бы этот список путей изображений сохранялся в структуре, которая может получить доступ по классу java.
В настоящее время я использую XSLT, который я получаю от другого вопроса. Но этот XSLT дает другие значения узла вместе с путями изображений. Я попробовал много фильтровать их, изменяя значения шаблона.
<xsl:template match="*">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="xi:include[@href][@parse='xml' or not(@parse)]">
<xsl:apply-templates select="document(@href)" />
</xsl:template>
Ожидаемый список результатов будет какая-то вещь, как,
/home/vish/test/images/image1.jpg
/дома/виш/тест/док/другие/изображения/image2 .jpg
/home/vish/test2/other/images/image3.jpg
Спасибо заранее .. !!
Где делает "/ дома/виш/тест" часть взялось? –
Я думал добавить xml: base для добавления этого общего пути и без абсолютного пути, я не смогу копировать изображения в выходной каталог, используя относительные пути в XML-документах. Но я не уверен. – vish
Функция document() должна иметь возможность одинаково хорошо разрешать как абсолютные ссылки, так и относительные ссылки. –