我有这个xml结构,我的标签之间有文字:
<content>
<line>Lorem ipsum dolor sit amet, consetetur sadipscing elitr<link>3</link></line>
</content>
<content>
<line>hendrerit in vulputate velit esse</line>
</content>
<content>
<line><bold>iriure dolor</bold>in hendrerit in vulputate velit esse molestie consequat</line>
</content>
我需要得到这个结果:
<p>
<span>Lorem ipsum dolor sit amet, consetetur sadipscing elitr<a href=''>3</a></span>
</p>
<p>
<span>hendrerit in vulputate velit esse</span>
</p>
<p>
<span><b>iriure dolor</b>in hendrerit in vulputate velit esse molestie consequat</span>
</p>
但我得到了这个结果:
<p>
<span><a href=''>3</a></span>
</p>
<p>
<span>hendrerit in vulputate velit esse</span>
</p>
<p>
<span><b>iriure dolor</b></span>
</p>
我该怎么做?
答案 0 :(得分:1)
下面是一个样式表,可以生成所需的输出。无法说这是否对您有用,因为您没有说明您尝试的解决方案是使用PHP还是只是调用XSLT样式表。
您的输入XML格式不正确,样式表假设此输入:
输入XML
<root>
<content>
<line>Lorem ipsum dolor sit amet, consetetur sadipscing elitr<link>3</link></line>
</content>
<content>
<line>hendrerit in vulputate velit esse</line>
</content>
<content>
<line><bold>iriure dolor</bold>in hendrerit in vulputate velit esse molestie consequat</line>
</content>
</root>
<强>样式表强>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes"/>
<xsl:template match="/root">
<xsl:copy>
<xsl:apply-templates/>
</xsl:copy>
</xsl:template>
<xsl:template match="content">
<p>
<xsl:apply-templates/>
</p>
</xsl:template>
<xsl:template match="line">
<span>
<xsl:apply-templates/>
</span>
</xsl:template>
<xsl:template match="link">
<a href="">
<xsl:apply-templates/>
</a>
</xsl:template>
<xsl:template match="bold">
<b>
<xsl:apply-templates/>
</b>
</xsl:template>
</xsl:stylesheet>
XML输出
<?xml version="1.0" encoding="UTF-8"?>
<root>
<p>
<span>Lorem ipsum dolor sit amet, consetetur sadipscing elitr<a href="">3</a>
</span>
</p>
<p>
<span>hendrerit in vulputate velit esse</span>
</p>
<p>
<span>
<b>iriure dolor</b>in hendrerit in vulputate velit esse molestie consequat</span>
</p>
</root>