我有一个 XML 文件,其中包含非标准的 html 元素,如下所示: 注意:段落已被缩短。
<content>
Sacrifice. It's Mass Effect 3's major theme...
<p />
Mass Effect was about time and place; you d...
<p />
Mass Effect 3 is focused more on plot th...
<p />
<img url="me3_img1.jpg">Plenty of games feat...</img>
Like Star Wars, Mass Effect 3 is an inc...
<p />
The reapers aren't your only adver...
<p />
<img url="me3_img2.jpg">If looks could kill..</img>
The series' focus on player choice is as vi...
<p />
This intense narrative is met wi...
<p />
<img url="me3_img3.jpg">The sun is sett...</img>
These are exquis...
</content>
每个段落之间都会有一个空白。每个图像必须出现在它们出现在内容中的段落之间,还必须有一个标题,内容是介于两者之间的内容,还请注意,有一个 url 而不是 src,所以这必须改变。
我当前的 xslt 仅副本,并且 css 修复了布局,但 img 没有显示,因为我无法将 url 更改为 src,也无法设置标题。
请帮忙。
更新:
<xsl:for-each select='./review/content/child::*'>
<xsl:value-of select="name()"/>
<xsl:choose>
<xsl:when test="name()='p'">
<p />
</xsl:when>
<xsl:when test="name()='img'">
<div class="reviewImage">
<img>
<xsl:attribute name="src">
<xsl:value-of select="./@url"/>
</xsl:attribute>
</img>
<xsl:value-of select="."/>
</div>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="."/>
</xsl:otherwise>
</xsl:choose>
</xsl:for-each>
它不输出任何文本()。图像和标题现在已排序。
找到的解决方案:
<xsl:for-each select='./review/content/node()'>
<xsl:choose>
<xsl:when test="name()='p'">
<p />
</xsl:when>
<xsl:when test="name()='img'">
<div class="reviewImage">
<img>
<xsl:attribute name="src">
<xsl:value-of select="./@url"/>
</xsl:attribute>
</img>
<xsl:value-of select="."/>
</div>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="."/>
</xsl:otherwise>
</xsl:choose>
</xsl:for-each>