【发布时间】:2013-01-02 00:42:16
【问题描述】:
我的 XML 文件的 sn-p:
<list>
<info>
<title>My Title</title>
<blah>My Blah</blah>
<derp>My Derp</derp>
</info>
<info>
<title>Second Title</title>
<blah>My Blah2</blah>
<derp>My 2nd Derp</derp>
</info>
<info>
<title>123</title>
<blah>444</blah>
<derp>zzz</derp>
</info>
</list>
我的 XSLT 文件的片段:
<xsl:for-each select="info">
<tr>
<td><xsl:value-of select="title" /></td>
<td><xsl:value-of select="blah" /></td>
<td><xsl:value-of select="derp" /></td>
</tr>
</xsl:for-each>
当我在 PHP 中使用 XSLTProcessor 时,这基本上会在一个整洁的表格中将我的 info 元素的标题、blah 和 derp 显示在他们自己的行中。
但无论如何,我想要做的是在我的表格中的每一行元素中都有一个 X 按钮。当单击此 X 按钮时,整个相应的 <info> 元素将从 XML 文件中删除。问题是我不知道从哪里开始这样做。我不知道是否可以使用 XSL 重写 XML 文件,或者我必须在 PHP 中重写。
感谢您的帮助。
【问题讨论】:
-
<xsl:value-of select="position()" />是否输出信息元素的编号,例如 1、2 或 3? -
是的。但它可能是倒退的,因为我的 XSL 中也有
<xsl:sort select="position()" data-type="number" order="descending"/>以按保留顺序显示表格。所以 123,444,zzz 将在顶部而不是底部。 -
用链接存储那个号码。单击时,您可以通过 xpath 选择要删除的元素:例如
info[2]。这能解决您的问题吗? -
好主意。我能够想出
<a><xsl:attribute name="href"><xsl:value-of select="position()" data-type="number" order="ascending" /></xsl:attribute>X</a>,它将在链接中包含值编号。但是我不明白您使用 xpath 删除相应的 info 元素是什么意思。我需要为此使用 XSL 还是 PHP?