我对JavaScript非常陌生,我的工作任务是制作一个html解析器,它可以遍历HTML文件的行,找到ID标记,然后将其与excel表(或CSV)匹配,然后用电子表格/ CSV文件中的值交换ID。
注:我不是要求你为我做这件事;只是我已经查看了加载,我只是不知道我需要什么样的解析器。如果方向正确,那将是非常感谢的。
下面是一个带有ID的HTML文档示例:(ID的前缀是#IDHERE#,因为我还不知道如何在没有解析器的情况下给ID加前缀)
<html>
<head>
//Header Data Here
</head>
<body>
<h1>#ID_MainTitle#</h1>
<p>#ID_Para1#</p>
</body>
</html>
下面是一个表格(Lua)(可以是excel等,但仅作为示例):
{
["ID_MainTitle"] = "Hello World",
["ID_Para1"] = "This is a test!",
}
这需要成为最终结果:
<html>
<head>
//Header Data Here
</head>
<body>
<h1>Hello World</h1>
<p>This is a test!</p>
</body>
</html>
我知道这没有多大帮助,但我确实看了一眼,但我发现的那些都不像我需要的。
你可以这样做:
(function(){
for ( var i = 0; i < YourData.length - 1; i++ ) {
document.getElementById(YourData[i].ID).innerHtml = YourData[i].Content;
}
})();
显然,要实现上述功能,您的数据需要驻留在一个数组中,其中每个元素都有必要的值(在上面的示例中为< code>ID和< code>Content)。
这对于简单的HTML标签来说是可行的,但是对于(例如)嵌套的DIV来说会遇到问题。无论如何,它可能会给你提供一个如何用javascript实现这一点的想法。
你的脚本是在浏览器中运行还是在服务器上运行?如果它在浏览器中运行,你需要解析同一个页面还是外部超文本标记语言?如果是同一个页面,我不会做解析器,而是处理DOM。也就是说,用特定的ID附上要替换的DIV或SPAN标签,然后在DOM中查找它们并替换。
如果您的脚本应该处理外部HTML,那么您仍然可以使用上面的方法。有一个用JS解析HTML字符串的解决方案
如果它在服务器上,那么使用节点和html解析器模块。
正如一位评论者所说,你重新发明了超文本标记语言模板的概念。人们已经编写了几十个甚至几百个模板引擎。
为此,您不需要“解析HTML”。基本上,您将HTML视为一个带有魔术占位符的大字符串(在您的例子中,是<code>#</code>之间的东西),模板引擎本质上是一种执行字符串替换的宏处理器。您可以对生成的插值HTML进行任何操作:将其保存到文件中,或将其发送到浏览器,或者如果您已经在浏览器中,则将其粘贴到DOM中。
像这样编写您的模板(假设这是在一个名为templateSource
的字符串中):
<html>
<head>
//Header Data Here
</head>
<body>
<h1>{{ID_MainTitle}}</h1>
<p>{{ID_Para1}}</p>
</body>
</html>
定义插值值:
data = {
ID_MainTitle: "Hello World",
ID_Para1: "This is a test!"
};
然后编译模板并运行它:
var template = Handlebars.compile(templateSource);
var result = template(data);
生成的插值HTML将位于结果
中。
根据您是想在类似服务器的节点中执行此操作,还是在浏览器中执行,存在一些细微的差异。
如今,JS程序员很少“编程”,更多的是调用API。一个关键的技能是找到已经写好的东西,想出如何使用它,并把它和其他组件粘在一起。
问题内容: 在Firefox中解析XmlHttpRequest的HTML结果的最佳方法是什么? 编辑: 我 没有 DOM树,我想获取它。 XmlHttpRequest的“ responseXML”仅在结果是实际XML时才有效,因此我只有responseText可以使用。 innerHTML hack似乎不适用于完整的HTML文档(在 中)。 -结果很好。 问题答案: 应该工作得很好,例如
我试图使用ANTLR4在golang创建一个javascript解析器。我使用的语法是这样的(https://github.com/antlr/grammars-v4/tree/master/javascript/ecmascript),我遵循自述文件https://github.com/antlr/antlr4/blob/master/doc/go-target.md中的说明 因此,我从语法中生
我正在尝试访问由Javascript创建的网页上的一些内容。然而,我希望访问的内容是在页面加载后由javascript创建的,因此当我尝试用Jsoup解析它时,无法找到这个Html源代码块。 我使用HtmlUnit获取Html源代码的代码如下: 但是当我运行它时,应该创建的Html没有被打印出来。我想知道如何获得这个由Javascript创建的Html源代码,使用HtmlUnit,然后获得所述结果
问题内容: 我知道我们可以使用PHP DOM 来使用PHP解析HTML。我也在堆栈溢出中发现了很多问题。但是我有一个特定的要求。我有如下的HTML内容 我想解析以上HTML并将内容保存到两个不同的数组中,例如: 和 我可以简单地使用jQuery来实现。但是我不确定这是否正确。如果有人能指出我正确的方向,那就太好了。提前致谢。 问题答案: 尝试查看PHP简单HTML DOM解析器 它具有类似于jQu
有人知道如何在解析服务器上从parse.com重新创建导入/导出吗? 或者甚至指出我做这件事的正确方向?
本文向大家介绍如何在HTML中创建表头?,包括了如何在HTML中创建表头?的使用技巧和注意事项,需要的朋友参考一下 要使用HTML创建表头,请使用<th>…</ th>标记。表标题标签被表行<tr>…</ tr>包围。<tr>标记被<table>标记包围。表格由行和列组成,可以使用一个或多个<tr>,<th>和<td>元素进行设置。使用style属性添加CSS属性,以向表添加边框。 表行由<tr>