Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用PHP或XSLT编辑xml文件_Php_Xml_Xslt_Feed - Fatal编程技术网

使用PHP或XSLT编辑xml文件

使用PHP或XSLT编辑xml文件,php,xml,xslt,feed,Php,Xml,Xslt,Feed,我需要你的大力帮助,我完全迷失在这个问题上,我一直在谷歌上搜索,但什么都帮不了我。当我找到一些解决方案时,它不起作用……请帮助我:/ 请用PHP或XSLT编辑它,谢谢 输入: <SHOP> <SHOPITEM> <PRODUCTNAME>Table</PRODUCTNAME> <DESCRIPTION>slaklasdk askdalsd dsasd</DESCRIPTION>

我需要你的大力帮助,我完全迷失在这个问题上,我一直在谷歌上搜索,但什么都帮不了我。当我找到一些解决方案时,它不起作用……请帮助我:/

请用PHP或XSLT编辑它,谢谢

输入:

<SHOP>
    <SHOPITEM>
        <PRODUCTNAME>Table</PRODUCTNAME>
        <DESCRIPTION>slaklasdk askdalsd dsasd</DESCRIPTION>
        <URL>http://www.google.com/</URL>
        <IMGURL>http://www.google.com/</IMGURL>
        <PRICE>79</PRICE>
        <CATEGORIES>
            <CATEGORY>Work, table</CATEGORY>
        </CATEGORIES>
        <MOTIVES>
            <MOTIVE>Brown oak</MOTIVE>
        </MOTIVES>
        <SIZES>
            <SIZE>
                <SIZEID>38626</SIZEID>
                <SIZENAME>uni</SIZENAME>
                <STOREPIECES>12</STOREPIECES>
            </SIZE>
        </SIZES>
</SHOPITEM>
<SHOPITEM>
        <PRODUCTNAME>Book</PRODUCTNAME>
        <DESCRIPTION>asdasdasdawra asdaseasd</DESCRIPTION>
        <URL>http://www.google.com/</URL>
        <IMGURL>http://www.google.com/</IMGURL>
        <PRICE>79</PRICE>
        <CATEGORIES>
            <CATEGORY>Book, Magazine</CATEGORY>
        </CATEGORIES>
        <MOTIVES>
            <MOTIVE>Black with blue stars</MOTIVE>
        </MOTIVES>
        <SIZES>
            <SIZE>
                <SIZEID>38626</SIZEID>
                <SIZENAME>uni</SIZENAME>
                <STOREPIECES>0</STOREPIECES>
            </SIZE>
        </SIZES>
    </SHOPITEM>
<SHOP>
    <SHOPITEM>
        <title>Table</title>
        <DESCRIPTION>slaklasdk askdalsd dsasd, Motive:Brown oak, size:uni</DESCRIPTION>
        <PRICE>79</PRICE>
        <ctg_0>Book, Magazine</ctg_0>
        <pieces>12</pieces>
        <unit>0</unit>
    </SHOPITEM>
    <SHOPITEM>
        <title>Book</title>
        <DESCRIPTION>asdasdasdawra asdaseasd, Motive:Black with blue stars, size:uni</DESCRIPTION>
        <PRICE>79</PRICE>
        <ctg_0>Book, Magazine</ctg_0>
        <pieces>0</pieces>
        <unit>0</unit>
    </SHOPITEM>
</SHOP>

桌子
slaklasdk askdalsd dsasd
http://www.google.com/
http://www.google.com/
79
工作,餐桌
褐橡树
38626
统一
12
书
ASDASDAWRA ASDASASD
http://www.google.com/
http://www.google.com/
79
书、杂志
黑星蓝星
38626
统一
0

我需要:

<SHOP>
    <SHOPITEM>
        <PRODUCTNAME>Table</PRODUCTNAME>
        <DESCRIPTION>slaklasdk askdalsd dsasd</DESCRIPTION>
        <URL>http://www.google.com/</URL>
        <IMGURL>http://www.google.com/</IMGURL>
        <PRICE>79</PRICE>
        <CATEGORIES>
            <CATEGORY>Work, table</CATEGORY>
        </CATEGORIES>
        <MOTIVES>
            <MOTIVE>Brown oak</MOTIVE>
        </MOTIVES>
        <SIZES>
            <SIZE>
                <SIZEID>38626</SIZEID>
                <SIZENAME>uni</SIZENAME>
                <STOREPIECES>12</STOREPIECES>
            </SIZE>
        </SIZES>
</SHOPITEM>
<SHOPITEM>
        <PRODUCTNAME>Book</PRODUCTNAME>
        <DESCRIPTION>asdasdasdawra asdaseasd</DESCRIPTION>
        <URL>http://www.google.com/</URL>
        <IMGURL>http://www.google.com/</IMGURL>
        <PRICE>79</PRICE>
        <CATEGORIES>
            <CATEGORY>Book, Magazine</CATEGORY>
        </CATEGORIES>
        <MOTIVES>
            <MOTIVE>Black with blue stars</MOTIVE>
        </MOTIVES>
        <SIZES>
            <SIZE>
                <SIZEID>38626</SIZEID>
                <SIZENAME>uni</SIZENAME>
                <STOREPIECES>0</STOREPIECES>
            </SIZE>
        </SIZES>
    </SHOPITEM>
<SHOP>
    <SHOPITEM>
        <title>Table</title>
        <DESCRIPTION>slaklasdk askdalsd dsasd, Motive:Brown oak, size:uni</DESCRIPTION>
        <PRICE>79</PRICE>
        <ctg_0>Book, Magazine</ctg_0>
        <pieces>12</pieces>
        <unit>0</unit>
    </SHOPITEM>
    <SHOPITEM>
        <title>Book</title>
        <DESCRIPTION>asdasdasdawra asdaseasd, Motive:Black with blue stars, size:uni</DESCRIPTION>
        <PRICE>79</PRICE>
        <ctg_0>Book, Magazine</ctg_0>
        <pieces>0</pieces>
        <unit>0</unit>
    </SHOPITEM>
</SHOP>
1) 删除

2)
重命名

3)
在上删除并重命名

4)
合并并删除

5) 删除
,然后将
合并,添加新元素
0
并在
上重命名

输出:

<SHOP>
    <SHOPITEM>
        <PRODUCTNAME>Table</PRODUCTNAME>
        <DESCRIPTION>slaklasdk askdalsd dsasd</DESCRIPTION>
        <URL>http://www.google.com/</URL>
        <IMGURL>http://www.google.com/</IMGURL>
        <PRICE>79</PRICE>
        <CATEGORIES>
            <CATEGORY>Work, table</CATEGORY>
        </CATEGORIES>
        <MOTIVES>
            <MOTIVE>Brown oak</MOTIVE>
        </MOTIVES>
        <SIZES>
            <SIZE>
                <SIZEID>38626</SIZEID>
                <SIZENAME>uni</SIZENAME>
                <STOREPIECES>12</STOREPIECES>
            </SIZE>
        </SIZES>
</SHOPITEM>
<SHOPITEM>
        <PRODUCTNAME>Book</PRODUCTNAME>
        <DESCRIPTION>asdasdasdawra asdaseasd</DESCRIPTION>
        <URL>http://www.google.com/</URL>
        <IMGURL>http://www.google.com/</IMGURL>
        <PRICE>79</PRICE>
        <CATEGORIES>
            <CATEGORY>Book, Magazine</CATEGORY>
        </CATEGORIES>
        <MOTIVES>
            <MOTIVE>Black with blue stars</MOTIVE>
        </MOTIVES>
        <SIZES>
            <SIZE>
                <SIZEID>38626</SIZEID>
                <SIZENAME>uni</SIZENAME>
                <STOREPIECES>0</STOREPIECES>
            </SIZE>
        </SIZES>
    </SHOPITEM>
<SHOP>
    <SHOPITEM>
        <title>Table</title>
        <DESCRIPTION>slaklasdk askdalsd dsasd, Motive:Brown oak, size:uni</DESCRIPTION>
        <PRICE>79</PRICE>
        <ctg_0>Book, Magazine</ctg_0>
        <pieces>12</pieces>
        <unit>0</unit>
    </SHOPITEM>
    <SHOPITEM>
        <title>Book</title>
        <DESCRIPTION>asdasdasdawra asdaseasd, Motive:Black with blue stars, size:uni</DESCRIPTION>
        <PRICE>79</PRICE>
        <ctg_0>Book, Magazine</ctg_0>
        <pieces>0</pieces>
        <unit>0</unit>
    </SHOPITEM>
</SHOP>

桌子
slaklasdk askdalsd dsasd,动机:棕色橡木,尺寸:uni
79
书、杂志
12
0
书
ASDASDAWRA ASDASASD,动机:带蓝色星星的黑色,尺寸:uni
79
书、杂志
0
0

学习XSL。速成课程: xsl首先匹配最不一般的匹配,因此如果您有*规则和URL规则,它将应用URL规则而不是*。 . 是当前节点。 *是当前节点的所有子节点。 text()是当前节点下的所有文本,或匹配中的单个文本节点。 @*是当前节点的所有属性。 name(.)是当前节点的名称

因此,这将递归复制(逐段复制)文件中的每个节点/文本/属性:

<xsl:template match="*">
    <xsl:element name="{name(.)}">
        <xsl:apply-templates select="*|@*|text()"/>
    </xsl:element>
</xsl:template>

<xsl:template match="@*|text()">
    <xsl:copy-of select='.'/>
</xsl:template>

现在为您想要更改的内容添加更具体的匹配项。如果要删除节点,请执行以下操作:

<xsl:template match="URL|IMGURL"/><!-- Do nothing, don't copy it -->

记住,更具体的匹配首先出现。重命名节点时,将{name(.)}(当前节点的名称)替换为要将其更改为的名称


这应该让您开始,其余的由您决定。

我需要的不是问题,这也不是编码服务。如果你在某个特定的问题上陷入困境,问问这个问题。对不起,我的英语不好,所以我使用straigh单词,你不必那么咄咄逼人。你的英语与此无关。不要把简洁和激进混为一谈。“它递归地复制(逐段地)文件中的每个节点/文本/属性”实际上,它只复制元素、属性和文本节点,而不是每个节点。不会复制其他节点,例如名称空间、注释和处理指令。(更准确地说,它甚至不复制元素——它创建了同名的新元素——这是有区别的。)看:我不是在精确,我是在帮助别人。