gpt4 book ai didi

xml - 使用 XSL 转换 xml

转载 作者:数据小太阳 更新时间:2023-10-29 02:42:28 26 4
gpt4 key购买 nike

我需要帮助使用 xsl 从 shops.xml 文件(其中 incity="yes"和 type="Botique")获取以下输出。由于我是 xslt 的新手,因此非常感谢任何帮助。

商店.xml:

<shops>     
<shop incity="yes" onlineorder="yes">
<type>Botique</type>
<address>
<streetno>23</streetno>
<streetname>collins</streetname>
<suburb>Melbourne</suburb>
</address>
</shop>
<shop incity="yes" onlineorder="yes">
<type>Botique</type>
<address>
<streetno>25</streetno>
<streetname>little collins</streetname>
<suburb>Melbourne</suburb>
</address>
</shop>
<shop incity="no" onlineorder="yes">
<type>Tailoring</type>
<address>
<streetno>2</streetno>
<streetname>cosmos street</streetname>
<suburb>Glenroy</suburb>
</address>
</shop>
</shops>

输出:

<shops>     
<shop onlineorder="yes">
<type>Botique</type>
<address> 23 collins,Melbourne </address>
</shop>
<shop onlineorder="yes">
<type>Botique</type>
<address> 25 little collins, Melbourne </address>
</shop>
</shops>

商店.xsl:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">   
<xsl:template match="shop[@incity='no']" />
<xsl:template match="@* | node()">
<xsl:copy>
<xsl:apply-templates select="@* | node()"/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>

商店.php

<?php
$xmlDoc = new DOMDocument('1.0');
$xmlDoc->formatOutput = true;
$xmlDoc->load("shops.xml");
$xslDoc = new DomDocument;
$xslDoc->load("shop.xsl");
$proc = new XSLTProcessor;
$proc->importStyleSheet($xslDoc);
$strxml= $proc->transformToXML($xmlDoc);
echo ($strxml);
?>

最佳答案

这里有一些事情可以开始:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:template match="shops">
<xsl:element name="shops">
<xsl:for-each select="shop">
<xsl:if test="@incity='yes'">
<xsl:if test="type='Botique'">
<xsl:element name="shop">
<xsl:attribute name="onlineorder">
<xsl:value-of select="@onlineorder"/>
</xsl:attribute>
<xsl:element name="type">
<xsl:value-of select="type"/>
</xsl:element>
<xsl:element name="address">
<xsl:value-of select="address/streetno"/>
<xsl:text> </xsl:text>
<xsl:value-of select="address/streetname"/>
<xsl:text>, </xsl:text>
<xsl:value-of select="address/suburb"/>
</xsl:element>
</xsl:element>
</xsl:if>
</xsl:if>
</xsl:for-each>
</xsl:element>
</xsl:template>

</xsl:stylesheet>

输出:

<?xml version="1.0"?>
<shops>
<shop onlineorder="yes">
<type>Botique</type>
<address>23 collins, Melbourne</address>
</shop>
<shop onlineorder="yes">
<type>Botique</type>
<address>25 little collins, Melbourne</address>
</shop>
</shops>

关于xml - 使用 XSL 转换 xml,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5942454/

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