- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我已经登录,并使用 CURL
抓取返回页面,使用 DOMDocument
加载它,然后使用 DOMXPATH
查询它(到找到“table.essgrid tr”)。 (然后我也在查询结果以找到子 'td' 和)结果,results->item(2)->nodeValue
是一个日期或者在浏览器中回显为 ;
或 。我需要检查它是不间断空格还是实际文本。
希望这对下面的代码有意义。
$dom = new DOMDocument();
$dom->loadHTML($result);
$xpath = new DOMXPATH($dom);
$result = $xpath->query('//table[@class="essgrid"]//tr');
if($result->length > 0) {
foreach($result as $item) {
$tds = $item->getElementsByTagName('td');
if($tds->length) {
if($tds->item(2)->nodeValue != " " && $tds->item(2)->nodeValue != " ") {
echo = '<div>not blank:</div>';
echo = '<div>'.$tds->item(2)->nodeValue.'</div>';
}
}
}
}
所以我希望它只回显值不是不间断空格的“table.essgrid>tr>td”,但它只是将其回显到页面上:
<div>not blank:</div>
<div> </div>
<div>not blank:</div>
<div> </div>
<div>not blank:</div>
<div>13:00</div>
<div>not blank:</div>
<div> </div>
<div>not blank:</div>
<div>14:30</div>
<div>not blank:</div>
<div>13:00</div>
<div>not blank:</div>
<div> </div>
但它正在回显所有结果,而不仅仅是带时间的结果。所以我认为我的问题是检查值是否 ==
,但我尝试过的任何地方似乎都不起作用。
最佳答案
当你想比较nodeValue
是否为
时,你需要知道两件事:
是表示特定字符的 HTML 实体,这里是不间断空格,可以正式指定为 Unicode Character 'NO-BREAK SPACE' (U+00A0) .有了这些手头的一般信息,就可以轻松解决您的问题。
代表 NO-BREAK SPACE (U+00A0) 并且 DOMElement::nodeValue
返回内容作为 UTF-8 编码字符串因为 UTF-8 中的 NO-BREAK SPACE 是 PHP 中的 "\xC2\xA0"
你可以简单地比较它:
/** @var $td DOMElement */
$td = $tds->item(2);
if ($td->nodeValue !== "\xC2\xA0") {
// TD content is not " "
}
希望这能为您提供所需的指导。
关于php - 检查 domnodelist->item(x)->nodeValue == "nbsp;",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26617586/
// html Hello World! // Javascript var textNode = div.firstChild; textNode.nodeValue = "Hello Us"; 样
这是我所拥有的: 我即时创建此标记: 现在我需要填充跨度: if (amount.firstChild.nodeType == 1) { amount.firstChild.nodeValue
我正在尝试编写一个脚本来验证 nodeValue 是否在 html 文档中 var myVar= document.getElementsByTagName("b"); for (var i = 0;
我正在使用 jquery 解析 XML 文档,并且属性的 nodeValue 似乎存在一些问题。我有以下元素: ...其中属性 formattednumber 是最终将在 UI 中显示的字符串。这很
x=document.getElementByTagName("p"); document.write(x.lastChi
当获取在 nodeValue 中有实体的 DOMNode 对象的 nodeValue(即 a & gt;)时,它将实体转换为它的可打印字符(即 >) 有没有人知道一种方法可以让它保持作为一个实体,当它
我一直在努力寻找一个功能完全相同的 jQuery 替代品: document.getElementById("element").firstChild.nodeValue = value; 以下是相关
假设我有一个节点列表 NodeList(5) [div.card, div.card, div.card, div.card, div.card] 0 : div.card 1 :
我是 Ajax 新手。 我正在尝试解析 this document . 我已经了解了 readystatechange,它正在获取 XML。但是当涉及到子节点及其值时,我感到困惑。 这是一些代码。如果
我应该使用哪一个? http://reference.sitepoint.com/javascript/CharacterData/data http://reference.sitepoint.co
假设我有一个非常基本的页面,其中包含正文、单个 div 和一个包含一些文本的段落元素。 some text 根据浏览器的不同,body/div 元素将具有文本节点(nodeTy
我有一个表格单元格,其值包含换行符,如下所示。 Foo Bar 我正在使用 td.childNodes[0].nodeValue 读取单元格内容并在 Ajax 请求中传递该值。但 IE8 将 LF 读
好吧,我有一个HTML网页,上面没有什么特别的东西,对吧?问题是,当我尝试不使用CSS(使用传统的标记)将图像放到屏幕上时,在FireFox中会出现以下错误: 不赞成使用属性的nodeValue属性。
我在设置变量时遇到问题,并且找不到任何有用的文档。 这有效: Foobar 但这不起作用: var theText = document.getElementBy
假设我有这段代码: Hello this is a description. Click here for more. 如何选择 p 的节点值但排除 a 及其内容? 我当前的代码: $result
标题应该很好地描述了我的问题。这是我的代码。 Some text function vb(){ alert(document.getElementById("adiv").firstChild
当使用 DOMDocument 解析 html 文档时,我从 nodeValue 获得了不同的编码。在我的开发环境中,我得到的是 UTF-8,但是当将脚本上传到网络服务器时,我得到的是 ISO-885
我正在尝试从 开始具有文本的元素 成交时的值(value) 然后得到它的父 并获得以下 sibling ,即 从那获取 child 的文字 . 据我所知,代码是正确的,应该回显 $1,034.29。
我在跳过空节点值时遇到问题。下面我通过从 XML 文件读取不同的标签来创建一个对象。问题是,当尝试读取“Addresse5”的 nodeValue 时,我收到一条错误,指出节点值未定义。 va
我正在尝试从 td 中提取文本,如此处所述 Replacing a part of text inside a td $('.my-table tr').each(function() {
我是一名优秀的程序员,十分优秀!