gpt4 book ai didi

xml - 从xml文件中提取混合数据

转载 作者:行者123 更新时间:2023-12-03 16:40:18 27 4
gpt4 key购买 nike

我想从具有混合子节点的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>


self :: p测试和self :: img测试有效,但self :: text()测试无效。我在这里做错了什么?

最佳答案

如果XML如下所示:

<content>
bla bal bla...
<p />
<img url="me3_img1.jpg">blaa bal</img>
bla laal laal
<p />
</content>


试试这个:

<xsl:for-each select="review/content/node()">
<xsl:choose>
<xsl:when test=". = not(node())">
<p><xsl:value-of select="./preceding::text()[1]" /></p>
</xsl:when>
<xsl:when test=". = text()">
<img><xsl:attribute name="src">url('<xsl:value-of select="./@url" />' </xsl:attribute></img>
<p><xsl:value-of select="." /></p>
</xsl:when>
<xsl:otherwise/>
</xsl:choose>
</xsl:for-each>

关于xml - 从xml文件中提取混合数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16658427/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com