我想从具有混合子节点的xml文件中的节点中提取内容。这里是布局的副本:从xml文件中提取混合数据
<content>
bla bal bla...
<p />
<img url="me3_img1.jpg"></img>blaa bal
bla laal laal
<p />
</content>
的“P”标签建议以下内容(图片和文字)应该被放置到下一段。图像将使用html创建,其中图像的来源是xml中自定义img标签的URL属性。
因此,输出将是:
<div>
<p>
bla bal bla...
</p>
<p>
<img src = "me3_img1.jpg"/>blaa bal
bla laal laal
</p>
</div>
这将有助于知道从哪里开始,或者对如何做到这一个基本思路。 (PS:我们只允许使用XPath和XSLT 1.0版本)
我已成功地做到以下几点:
<xsl:for-each select="./review/content/*">
<xsl:if test="self::text()">
Display text
</xsl:if>
<xsl:if test="self::p">
<br/>
</xsl:if>
<xsl:if test="self::img">
Display image
</xsl:if>
</xsl:for-each>
自:: P测试和自我:: IMG测试工作,但self :: text()测试不起作用。我在这里做错了什么?
这不是XML,你应该关闭''标签。要获取所有文本内容,请使用'// text()'。无法使用普通XPath/XSLT加载任何图像内容;你将需要重新指定在这里会发生什么。您可能需要启用空白保留才能得到完全的结果,具体取决于所选的处理器。 –
你真的只想输出文字,还是输出HTML?如果您要输出HTML,那么如果您在预期的输出中显示实际的HTML标签,这将有所帮助。谢谢! –