您好代码如下:
<?xml version="1.0"?>
<wddxPacket version="1.0">
<header/>
<data>
<array length="2">
<struct type="coldfusion.server.ConfigMap">
<var name="XXXXX">
<struct type="coldfusion.server.ConfigMap">
<var name="disable"><boolean value="false"/></var>
<var name="alter"><boolean value="true"/></var>
<var name="username"><string>username1</string></var>
etc.
代码继续使用1000个用户名值。我想创建一个选择每个用户名的循环。到目前为止,我选择每个用户名的代码都是这样的。
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<xsl:for-each select='wddxPacket/data/array/struct[@type="coldfusion.server.ConfigMap"]
/var/struct[@type="coldfusion.server.ConfigMap"]/var/@name'>
<xsl:value-of select="username"/>,
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
我希望我的输出看起来像:username1,username2,username3,username4 ....我面临的问题是我的输出是空的,或者当我将代码更改为value-of select =“ @name“我只得到用户名,用户名,用户名...
的输出感谢您的帮助!
答案 0 :(得分:1)
目前,您正在循环遍历所有@name
元素的var
属性。如果您只想要&#34;用户名&#34;那些,改成它......
<xsl:for-each select='wddxPacket/data/array/struct[@type="coldfusion.server.ConfigMap"]
/var/struct[[@type="coldfusion.server.ConfigMap"]
/var[@name="username"]'>
然后,要获取用户名,您可以这样做......
<xsl:value-of select="string"/>