我需要在另一个公共secuanci中执行循环序列并获取每个人和每个状态的数据,我对代码的问题是它不会迭代我提供的数据。当我有空字段时,我需要第二个for-each的帮助,然后我可以使用Word内容控件
XML文件
<?xml version="1.0"?>
<emailList>
<person>
<name>name 1</name>
<email>g@gmail.com</email>
<status>
<active>1</active>
<active>2</active>
<active>3</active>
</status>
</person>
<person>
<name>name 2</name>
<email>n@hotmail.com</email>
<status>
<active>4</active>
<active>5</active>
</status>
</person>
</emailList>
XSL文件
<xsl:stylesheet version="1.0">
<html xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xsl:version="1.0">
<head>
<title>Email Listing</title>
</head>
<body>
<table>
<tr>
<th>Name</th>
<th>E-mail Address</th>
<th>Status</th>
</tr>
<xsl:for-each select="emailList/person">
<tr>
<td><xsl:value-of select="name"/></td>
<td><xsl:value-of select="email"/></td>
<td>
<xsl:for-each select="emailList/person/status">
<xsl:value-of select="active"/>
</xsl:for-each>
</td>
</tr>
</xsl:for-each>
</table>
</body>
</html>
答案 0 :(得分:1)
您的内部xsl:for-each
将与外部person
相对,即选择<xsl:for-each select="status/active">
<xsl:value-of select="."/>
</xsl:for-each>
。
尝试将其更改为此...
.
<xsl:for-each select="status/active">
<xsl:if test="position() > 1">,</xsl:if>
<xsl:value-of select="."/>
</xsl:for-each>
选择当前节点的位置。
如果你想用逗号分隔值,你可以这样做....
xsl:for-each
更好的是,升级到XSLT 2.0并完全取消<td>
<xsl:value-of select="status/active" separator="," />
</td>
..
String[][] table;
JsonParser parser = new JsonParser();
JsonObject obj = parser.parse(document.text()).getAsJsonObject();
JsonArray array = obj.get("movimientos").getAsJsonArray();
table = new String[3][array.size()];
for (int i = 0; i < array.size(); i++) {
JsonObject element = array.get(i).getAsJsonObject();
table[0][i] = element.get("fechaDatetime").getAsString();
table[1][i] = element.get("movimiento").getAsString();
table[2][i] = element.get("ubicacion").getAsString();
}
答案 1 :(得分:0)
<xsl:template match="/">
<html>
<head>
<title>Email Listing</title>
</head>
<body>
<table>
<tr>
<th>Name</th>
<th>E-mail Address</th>
<th>Status</th>
</tr>
<xsl:for-each select="emailList/person">
<tr>
<td><xsl:value-of select="name"/></td>
<td><xsl:value-of select="email"/></td>
<td>
<xsl:for-each select="status">
<xsl:value-of select="active"/>
</xsl:for-each>
</td>
</tr>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>