XSLT Вставить HTML-контент - PullRequest
2 голосов
/ 17 июня 2009

Я пытаюсь вставить какой-то HTML в данный момент. Файл XML имеет узел содержимого, внутри которого есть фактический HTML. Например, вот раздел содержимого XML:

-----------------
<content>
    <h2>Header</h2>
    <p><a href="...">some link</a></p>
    <p><a href="...">some link1</a></p>
    <p><a href="...">some link2</a></p>
</content>
-----------------

Мне нужно вставить ссылку после заголовка, но перед первой ссылкой, внутри собственного тега p. Немного заржавел с XSLT, любая помощь приветствуется!

Ответы [ 2 ]

3 голосов
/ 17 июня 2009

По данным этого источника:

<html>
    <head/>
    <body>
        <content>
            <h2>Header</h2>
            <p><a href="...">some link</a></p>
            <p><a href="...">some link1</a></p>
            <p><a href="...">some link2</a></p>
        </content>
    </body>
</html>

Эта таблица стилей будет делать то, что вы хотите:

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:template match="@*|node()">
        <xsl:copy>
            <xsl:apply-templates select="@*|node()"/>
        </xsl:copy>
    </xsl:template>
    <xsl:template match="/html/body/content/h2">
        <xsl:copy>
            <xsl:apply-templates/>
        </xsl:copy>
        <p><a href="...">your new link</a></p>
    </xsl:template>
</xsl:stylesheet>
3 голосов
/ 17 июня 2009
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
    <xsl:template match="/content">
        <xsl:copy-of select="h2"/>
        <a href="">foo</a>
        <xsl:copy-of select="p"/>
    </xsl:template>
</xsl:stylesheet>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...