使用PHP或XSLT编辑xml文件
我需要你的大力帮助,我完全迷失在这个问题上,我一直在谷歌上搜索,但什么都帮不了我。当我找到一些解决方案时,它不起作用……请帮助我:/ 请用PHP或XSLT编辑它,谢谢 输入:使用PHP或XSLT编辑xml文件,php,xml,xslt,feed,Php,Xml,Xslt,Feed,我需要你的大力帮助,我完全迷失在这个问题上,我一直在谷歌上搜索,但什么都帮不了我。当我找到一些解决方案时,它不起作用……请帮助我:/ 请用PHP或XSLT编辑它,谢谢 输入: <SHOP> <SHOPITEM> <PRODUCTNAME>Table</PRODUCTNAME> <DESCRIPTION>slaklasdk askdalsd dsasd</DESCRIPTION>
<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单词,你不必那么咄咄逼人。你的英语与此无关。不要把简洁和激进混为一谈。“它递归地复制(逐段地)文件中的每个节点/文本/属性”实际上,它只复制元素、属性和文本节点,而不是每个节点。不会复制其他节点,例如名称空间、注释和处理指令。(更准确地说,它甚至不复制元素——它创建了同名的新元素——这是有区别的。)看:我不是在精确,我是在帮助别人。