标签是标记或语义描述符。尽管通用起源,这个“标签”已成为HTML的同义词 - 如果你的问题已经在这个背景下,它的使用可能是不必要的。然而,在不同的上下文中,术语“标签”也可以正式使用。一个案例是SCADA程序Ignition,其中标签是放置在分层系统中的基本单元之一,每个单元都有自己的标签路径和与其他标签相关的标签路径。
HTML内容: 以下堆栈溢出答案正在使用Java-HTML库。免责声明是我隶属于该库的代码编写。当需要对HTML Parse,Search,Update或Scrape进行细粒度控制时,它是最有用的。可以通过Google搜索找到。 我在下面的答案中编码了一个答案,该答案在OP发布的问题中抓取了HTML中提供的所有数据。如果需要丢弃这些信息中的任何一个,请从创建的Properties对象中删除多余的表信息。该代码的假定是HTML数据表应具有许多行(确切地说,OP已指定29行),并且每一行和每一列将具有与问题中提供的相同的特征。 在代码末尾,数据被打印到终端。此答案的末尾包含示例输出。 import Torello.HTML.*; import Torello.HTML.NodeSearch.*; import Torello.Java.FileRW; import java.util.*; import java.io.IOException; import java.net.URL; public class SQLID { static final String STARS = "****************************************************************"; static final String SQL = "SQL:"; static final String SQL_ID = "SQL ID:"; static final String EXECUTIONS = "Executions:"; static final String TOTAL_EXECUTION = "Total Execution Time:"; static final String MAX_EXECUTION = "Maximum Execution Time:"; static final String AVG_EXECUTION = "Average Execution Time:"; public static void main(String[] argv) throws IOException { String html = FileRW.loadFileToString("sqlid.html"); // Parses the HTML Page into a Vector of HTMLNode's. Each Node is either an "HTML Element" (class TagNode), or an instance of "class TextNode" Vector<HTMLNode> page = HTMLPage.getPageTokens(html, false); // Retrieves and copies all nodes between <TABLE ID="list-table"> ... and </TABLE> into "table" Vector<HTMLNode> table = InnerTagGetInclusive.first(page, "table", "id", TextComparitor.EQ_CI, "list-table"); // This is the data-table. It is merely a vector of java.util.Properties (inherits java.util.Hashtable) Vector<Properties> sqlInfo = new Vector<>(); // This will iterate rows as Vector<HTMLNode> where each vector is the contents of a row: <TR> ... </TR> HNLIInclusive rows = TagNodeInclusiveIterator.iter(table, "tr"); while (rows.hasNext()) { Properties p = new Properties(); Vector<HTMLNode> row = rows.next(); Vector<HTMLNode> col = TagNodeGetInclusive.first(row, "td"); int pos; // Finds the first instance of "class TextNode" that contains the String "SQL ID:" pos = TextNodeFind.first(col, txt -> txt.contains(SQL_ID)); // Retrieve the contents of that node, and drop the initial substring "SQL_ID:" p.put(SQL_ID, col.elementAt(pos).str.trim().substring(SQL_ID.length()).trim()); // Finds the first instnce of "class TextNode" that contains the String "Executions:" pos = TextNodeFind.first(col, txt-> txt.contains(EXECUTIONS)); // By using "pos + 3", we can skip ahead 2 nodes in the vector (after the </B> element), to get the data-value // According to the HTML, the Data is stored as: <B>Executions: </B> 5 // And this means, the element at "pos + 1" is </B>, and the node at "pos + 2" is what we are looking for. p.put(EXECUTIONS, col.elementAt(pos + 2).str.trim()); // And so on, and so forth... pos = TextNodeFind.first(col, txt -> txt.contains(TOTAL_EXECUTION)); p.put(TOTAL_EXECUTION, col.elementAt(pos + 2).str.trim()); pos = TextNodeFind.first(col, txt -> txt.contains(MAX_EXECUTION)); p.put(MAX_EXECUTION, col.elementAt(pos + 2).str.trim()); pos = TextNodeFind.first(col, txt -> txt.contains(AVG_EXECUTION)); p.put(AVG_EXECUTION, col.elementAt(pos + 2).str.trim()); // The 2nd column in the HTML contains the actual SQL code you are looking for col = TagNodeGetInclusive.nth(row, 2, "td"); p.put(SQL, Util.textNodesString(col).trim()); // Save to the "list of properties" or "vector of properties" sqlInfo.add(p); } // Print the output to the terminal for (Properties p : sqlInfo) { System.out.println(STARS); for (Object property : p.keySet()) System.out.println(String.format("%-" + 25 + "s", property.toString()) + p.get(property)); } } } 以上代码,使用示例HTML表数据将产生的输出输出到Linux / UNIX / Debian等...终端。 **************************************************************** SQL ID: 7w1ahss5vuwv4 SQL: SELECT * FROM (SELECT FndDocumentEntitiesDTEO.DOCUMENT_ENTITY_ID, Executions: 5 Average Execution Time: 1 ms Maximum Execution Time: 1 ms Total Execution Time: 4 ms
VSCode上的Link + tab快捷方式Emmet-如何获得包含在其中的“类型”?
当我键入快捷方式link + tab以获得链接标记和属性时。它仅显示: 当我想要显示时: ...
在header.php内部,我进行了api调用以获取数据以设置元信息。 $ title,$ description和$ images是我从api调用中获得的信息。我可以看到从视图中添加的元标记...
[当我进入Google云端硬盘并查看网页时,我看到了很多标签。这些是什么?它们似乎用于我的用户特定内容(我拥有的文件)。我的浏览器如何知道如何渲染...
就像标题说的:“如何手动将堆栈条目推入vim标签堆栈?”问题出在这里:我使用gtags / global + unite.vim插件已有一段时间了(顺便说一下,这两个插件是...
是否有一种简单的方法,可以让Ansible在特定git分支上签出最新标签,而无需指定或传递标签?也就是说,Ansible是否可以检测或导出最新的标签...
Shopify / Liquid-产品标签forloop的输出顺序似乎是随机的?
我有一家shopify商店,但包含的顺序未显示在此处的列出方式。碳纤维,图形,化合物。包含内容是否应包含某些内容? ...
我们正在尝试从我们的收藏页导航中隐藏特定的标签/过滤器,而不从产品本身中删除标签,因为我们仍需要此标签来实现其他功能。 ...
我正在尝试在我们的GTM容器中提取标签列表,但始终收到此错误:{“错误”:{“代码”:400,“消息”:“无效的container_id(期望以10为基数):'GTM -KXLNC6'“,...
我遇到了一些问题,我无法确定如何标记要运行的不同测试。我想要的测试仅在我希望能够标记哪个...
我有从w3schools获得的HTML代码。但是,视频标签有点奇怪。我想取消视频的静音,因此我删除了静音标签,但是当它删除时,它甚至都没有...
XSPF(xml播放列表)规范:我应该如何格式化指向一个或多个音乐服务的链接?
我正在开发音乐软件,由于它是一种标准,所以我想使用XSPF规范,但是我没有得到某些东西。也许它甚至不存在,因为...
如果jqgrid为空,则溢出:自动不适用于标题,但如果记录位于jqgrid中,则溢出:自动适用于记录和标题。如何在jqgrid中将水平滚动设置为常见于...
[AFAIK,git push --tag将参考/标签下的每个标签推送到远程。我想知道git中是否只有一种方式可以推送与通配符或正则表达式匹配的某些标记?例如,我的仓库有标签v1.0,...
我目前在cart.liquid中使用此代码。我已经在cart.template.liquid中尝试过它,但是我需要它出现在购物车容器的顶部或购物车中的产品附近,因为...
i写此代码 [[[ Lable [如果您希望能够在HTML中定位标签项,最简单的方法是向其应用类或ID,例如<label class="myLabel" for="id">LABLE</label>。然后,您可以在CSS中定位.myLabel以便对其进行操作。 您可以使用选择器执行此操作 `:nth-child()` 在您的特定示例中,您可以选中该复选框,可以使用: table tr td:nth-child(1) { // put your styling here }
我正在尝试使用单词作为标记来创建输入,然后允许用户删除它们。每次单击X时,我都会收到一条错误消息,指出ReferenceError:未定义remove,我不是...