2009-06-17 3 views
2

Я пытаюсь вставить некоторый HTML в заданную точку. XML-файл имеет узел контента, внутри которого есть фактический HTML. Для exmaple здесь есть раздел содержания XML:XSLT Вставить содержимое html

----------------- 
<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> 
----------------- 

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

ответ

3

Учитывая этот источник:

<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> 
+0

И помогло, но это было приятно видеть все вещи вместе взятые, как это помогло я понимаю больше. Хороший ответ спасибо! – Wade

3
<?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> 
Смежные вопросы