小编Jon*_*n H的帖子

c:forEach循环打印方括号分隔符

我将名为dataTable的属性传递给我的JSP,这是一个字符串列表列表.在JSP中如果我输出属性,使用$ {dataTable}它以原始格式打印出来:

[[Header1, Header2, Header3], [A, B, C], [1, 2, 3]]
Run Code Online (Sandbox Code Playgroud)

我可以像这样直接打印一个项目:

${dataTable[1][2]} 
Run Code Online (Sandbox Code Playgroud)

输出:C

然后,当我编写嵌套的c:forEach循环来打印表时,每行末尾的方括号都包含在内,但不包括整个对象上的方括号.

我的代码是:

<c:forEach var="row" items="${dataTable}">
    <c:forEach var="item" items="${row} ">
        <span>${item}</span>
    </c:forEach>
    <br />
</c:forEach>
Run Code Online (Sandbox Code Playgroud)

结果如下:

        <span>[Header1</span>
        <span> Header2</span>
        <span> Header3] </span>
    <br />
        <span>[A</span>
        <span> B</span>
        <span> C] </span>
    <br />
        <span>[1</span>
        <span> 2</span>
        <span> 3] </span>
    <br />
Run Code Online (Sandbox Code Playgroud)

这几乎就是我想要的,我只是不希望每行的开头和结尾都有方括号.

我错过了什么导致这些方括号在迭代时出现,但是当我直接访问项目时却没有?

谢谢!

java jsp jstl

6
推荐指数
1
解决办法
1815
查看次数

HTML Agility Pack - 选择带有选项标签的HTML选择标记的问题

我正在使用HTML Agility Pack来选择一个元素,并从加载的html字符串返回该元素及其包含的所有内容.在测试我的代码时,我针对来自w3schools的select标签示例运行它:

<select name="cars">
  <option value="volvo">Volvo XC90</option>
  <option value="saab">Saab 95</option>
  <option value="mercedes">Mercedes SLK</option>
  <option value="audi">Audi TT</option>
</select>
Run Code Online (Sandbox Code Playgroud)

当我尝试使用HTML敏捷包选择并返回时,我得到(删除选项结束标记):

<select name="cars">
  <option value="volvo">Volvo XC90
  <option value="saab">Saab 95
  <option value="mercedes">Mercedes SLK
  <option value="audi">Audi TT
</select>
Run Code Online (Sandbox Code Playgroud)

所以我在这里做了一些搜索并找到了添加该行的指令:HtmlNode.ElementsFlags.Remove("option");

我做到了,现在我得到了(选项文本被移动到选项标签之外):

<select name="cars">
  <option value="volvo"></option>Volvo XC90
  <option value="saab"></option>Saab 95
  <option value="mercedes"></option>Mercedes SLK
  <option value="audi"></option>Audi TT
</select>
Run Code Online (Sandbox Code Playgroud)

我希望输出与原始HTML匹配.我需要做什么才能做到这一点?

我也在使用OptionWriteEmptyNodes,因为当我使用输入标签进行测试时,他们的自我关闭被删除,添加该选项似乎解决了这个问题.我现在评论它以确保它不会影响这个问题.

这是我的.NET C#代码:

HtmlDocument doc = new HtmlDocument();
doc.LoadHtml(content);
HtmlNode.ElementsFlags.Remove("option"); // otherwise, the closing tag is removed.

//doc.OptionWriteEmptyNodes = true;

var nodes = doc.DocumentNode.SelectNodes("//select");

if (nodes == null) …
Run Code Online (Sandbox Code Playgroud)

.net c# dom html-agility-pack

5
推荐指数
1
解决办法
2721
查看次数

标签 统计

.net ×1

c# ×1

dom ×1

html-agility-pack ×1

java ×1

jsp ×1

jstl ×1