为了论证,我们假设一个HTML解析器.
我已经读过它首先将所有内容标记化,然后解析它.
tokenize意味着什么?
解析器是否每个都读取每个字符,构建一个多维数组来存储结构?
例如,它是读取a <然后开始捕获元素,然后一旦它遇到关闭>(在属性之外)它被推送到某个地方的数组堆栈?
我为了知道而感兴趣(我很好奇).
如果我要阅读像HTML Purifier这样的内容,那么这会让我对HTML的解析方式有所了解吗?
我试图使用python HTMLParser库从HTML页面中获取值.我想要掌握的值是在这个html元素中:
...
<div id="remository">20</div>
...
Run Code Online (Sandbox Code Playgroud)
到目前为止,这是我的HTMLParser类:
class LinksParser(HTMLParser.HTMLParser):
def __init__(self):
HTMLParser.HTMLParser.__init__(self)
self.seen = {}
def handle_starttag(self, tag, attributes):
if tag != 'div': return
for name, value in attributes:
if name == 'id' and value == 'remository':
#print value
return
def handle_data(self, data):
print data
p = LinksParser()
f = urllib.urlopen("http://domain.com/somepage.html")
html = f.read()
p.feed(html)
p.close()
Run Code Online (Sandbox Code Playgroud)
有人能指出我正确的方向吗?我希望类功能获得值20.
有没有办法获取HTML并将其导入Excel,以便将其格式化为富文本格式(最好使用VBA)?基本上,当我粘贴到Excel单元格时,我希望将其转为:
<html><p>This is a test. Will this text be <b>bold</b> or <i>italic</i></p></html>
Run Code Online (Sandbox Code Playgroud)
进入这个:
这是一个测试.这个文本是粗体还是斜体
我正在尝试创建一个对话框,只有在选择的浏览器是IE(任何版本)时才会出现但是我收到此错误:
消息:HTML分析错误:在子元素关闭之前无法修改父容器元素(KB927917)
这一切都在"Line/Char/Code"0中,所以我不知道错误在哪里.我正在使用的代码是这样的:
<script type="text/javascript">
<!--
if(BrowserDetect.browser.contains("Explorer"))
{
var Nachricht = 'Hemos detectado que está utilizando ' + BrowserDetect.browser + ' ' +
BrowserDetect.version + '. Puede que algunas funciones no estén habilitadas. <p></p> Si desea experimentar todo el potencial del portal, por favor intente desde otro navegador (browser). <p></p>Gracias
showDialog('¡Aviso Importante!',Nachricht,'warning',10);
}
</script>
Run Code Online (Sandbox Code Playgroud)
我注意到,如果我删除"BrowserDetect.browser"和.version它会删除错误,但我需要检查=/...任何想法将被赞赏=).
在jQuery ajax调用以检索整个XHTML文档之后,从结果字符串中选择特定元素的最佳方法是什么?也许有一个库或插件可以解决这个问题?
如果W3C规范中的div通常允许,jQuery只能选择存在于字符串中的XHTML元素; 因此,我很好奇选择喜欢的东西<title>,<script>和<style>.
根据jQuery文档:
http://docs.jquery.com/Core/jQuery#htmlownerDocument
HTML字符串不能包含div中无效的元素,例如html,head,body或title元素.
因此,既然我们已经确定jQuery没有提供这样做的方法,我将如何选择这些元素?例如,如果您可以告诉我如何选择远程页面的标题,那将是完美的!
谢谢,皮特
如果我在磁盘上有一个HTML文件,我怎样才能在运行时一次性读取一个String变量?然后我需要对该字符串变量进行一些处理.
一些像这样的html文件:
<html>
<table cellspacing="0" cellpadding="0" rules="all" border="1" style="border-width:1px;border-style:solid;width:274px;border-collapse:collapse;">
<COLGROUP><col width=35px><col width=60px><col width=60px><col width=60px><col width=59px></COLGROUP>
<tr style="height:20px;">
<th style="background-color:#A9C4E9;"></th><th align="center" valign="middle" style="color:buttontext;background-color:#D3DCE9;">A</th><th align="center" valign="middle" style="color:buttontext;background-color:#D3DCE9;">B</th><th align="center" valign="middle" style="color:buttontext;background-color:#D3DCE9;">C</th><th align="center" valign="middle" style="color:buttontext;background-color:#D3DCE9;">D</th>
</tr><tr style="height:20px;">
<th align="center" valign="middle" style="color:buttontext;background-color:#E4ECF7;">1</th><td align="left" valign="top" style="color:windowtext;background-color:window;">Hi</td><td align="left" valign="top" style="color:windowtext;background-color:window;">Cell Two</td><td align="left" valign="top" style="color:windowtext;background-color:window;">Actually a longer text</td><td align="left" valign="top" style="color:windowtext;background-color:window;">Final Word</td>
</tr>
</table>
</html>
Run Code Online (Sandbox Code Playgroud) 我一直在使用CKEditor wysiwyg编辑器建立一个网站,允许用户使用HTML编辑器添加一些注释.我最终在我的数据库中有一些非常冗余的嵌套HTML代码,这会减慢查看/编辑这些注释的速度.
我的评论看起来像这样(这是一个非常小的例子.我有超过100个嵌套标签的评论):
<p>
<strong>
<span style="font-size: 14px">
<span style="color: #006400">
<span style="font-size: 14px">
<span style="font-size: 16px">
<span style="color: #006400">
<span style="font-size: 14px">
<span style="font-size: 16px">
<span style="color: #006400">This is a </span>
</span>
</span>
</span>
</span>
</span>
</span>
<span style="color: #006400">
<span style="font-size: 16px">
<span style="color: #b22222">Test</span>
</span>
</span>
</span>
</span>
</strong>
</p>
Run Code Online (Sandbox Code Playgroud)
我的问题是:
是否有任何库/代码/软件可以对HTML代码进行智能(即格式识别)清理,删除所有对格式没有影响的冗余标记(因为它们被内部标记覆盖)?我尝试了很多现有的在线解决方案(例如HTML Tidy).他们都没有做我想做的事.
如果没有,我需要编写一些HTML解析和清理代码.我打算使用PHP Simple HTML DOM遍历HTML树并找到所有无效的标签.您是否建议任何其他更适合我的HTML解析器?
谢谢
.
我编写了一些代码来分析我的HTML代码.我拥有的所有HTML标签都是:
<span>用于font-size和/或的样式color<font>与属性color和/或size<a> …好吧,我对这个失去了理智.我的程序中有一个解析HTML的方法.我想要包含内嵌图像,我的印象是使用Html.fromHtml(字符串,Html.ImageGetter,Html.TagHandler)将允许这种情况发生.
由于Html.ImageGetter没有实现,所以由我来编写一个.但是,由于将URL解析为Drawables需要网络访问,我不能在主线程上执行此操作,因此它必须是AsyncTask.我认为.
但是,当您将ImageGetter作为参数传递给Html.fromHtml时,它使用必须重写的getDrawable方法.因此无法调用触发doInBackground方法的整个ImageGetter.execute事务,因此无法实际实现此异步.
我是否完全错了,或者更糟糕的是,这是不可能的?谢谢
我有一个XPath来选择我想要的类://div[@class='myclass'].但它返回给我整个div(<div class='myclass'>也有,但我想只返回这个标签的内容而没有标签本身.我怎么能这样做?
我很好奇是否存在用于处理HTML/XML文件的PHP的jQuery样式接口/库 - 特别是使用jQuery样式选择器.
我想做这样的事情(所有假设):
foreach (j("div > p > a") as anchor) {
// ...
}
print j("#some_id")->html();
print j("a")->eq(0)->attr("name");
这只是几个例子.
我尽可能多地使用谷歌搜索,但找不到我想要的东西.有没有人知道这些东西是否存在,或者这是我将要使用domxml从头开始制作的东西?