[英]Undefined property: DOMElement::$wholeText
我收到以下錯誤: Undefined property: DOMElement::$wholeText"
當我循環查詢並嘗試回顯整個text結果時。
$try = $xpath->query('//h2/following-sibling::ul/li | //h2/following-sibling::h3/text()');
foreach($try as $values){
echo $values->wholeText;
//echo '<pre>', print_r($values), '</pre>';
}
在$xpath->query
返回以下時,我print_r
的$values
從在foreach變量。
DOMText Object {
[wholeText] => House Data
[data] => House Data
[length] => 10
[nodeName] => #text
[nodeValue] => House Data
[nodeType] => 3
[parentNode] => (object value omitted)
[childNodes] =>
[firstChild] =>
[lastChild] =>
[previousSibling] =>
[nextSibling] =>
[attributes] =>
[ownerDocument] => (object value omitted)
[namespaceURI] =>
[prefix] =>
[localName] =>
[baseURI] =>
[textContent] => House Data
)
DOMElement Object (
[tagName] => li
[schemaTypeInfo] =>
[nodeName] => li
[nodeValue] => 12 doors are very expensive
[nodeType] => 1
[parentNode] => (object value omitted)
[childNodes] => (object value omitted)
[firstChild] => (object value omitted)
[lastChild] => (object value omitted)
[previousSibling] =>
[nextSibling] => (object value omitted)
[attributes] => (object value omitted)
[ownerDocument] => (object value omitted)
[namespaceURI] =>
[prefix] =>
[localName] => li
[baseURI] =>
[textContent] => 12 doors are very expensive
)
DOMText Object (
[wholeText] => Car Data
[data] => Car Data
[length] => 8
[nodeName] => #text
[nodeValue] => Car Data
[nodeType] => 3
[parentNode] => (object value omitted)
[childNodes] =>
[firstChild] =>
[lastChild] =>
[previousSibling] =>
[nextSibling] =>
[attributes] =>
[ownerDocument] => (object value omitted)
[namespaceURI] =>
[prefix] =>
[localName] =>
[baseURI] =>
[textContent] => Car Data
)
DOMElement Object (
[tagName] => li
[schemaTypeInfo] =>
[nodeName] => li
[nodeValue] => The car has 4 doors
[nodeType] => 1
[parentNode] => (object value omitted)
[childNodes] => (object value omitted)
[firstChild] => (object value omitted)
[lastChild] => (object value omitted)
[previousSibling] =>
[nextSibling] => (object value omitted)
[attributes] => (object value omitted)
[ownerDocument] => (object value omitted)
[namespaceURI] =>
[prefix] =>
[localName] => li
[baseURI] =>
[textContent] => The car has 4 doors
)
但是如果我echo $values->nodeValue;
它有效,盡管它回顯了所有數據,但我只是試圖單獨訪問整個文本,我不明白為什么會彈出此錯誤?
更新:
現在,我仔細看了一下,看到echo $values->wholeText;
它試圖回顯DOMElement而不是DOMText。
回顯時如何引用DOMText而不是DOMElement?
沒什么復雜的: wholeText
是DOMText
屬性,而不是DOMNode
屬性。 當XPath查詢的//h2/following-sibling::ul/li
部分成功並返回非DOMText
實例的節點時,您自然會得到此錯誤。
如果要獲取li元素內的文本,則使用便捷的方法DOMNode::nodeValue
是一個好方法。 請注意,由於DOMText
類是從DOMNode
繼承的,因此該方法也可用於DOMText
實例。
我可以通過檢查nodeType來解決此問題。
nodeType 1是元素,3是文本,依此類推,您可以在此處找到所有的nodeTypes。
if($values->nodeType === 3){
echo $values->textContent;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.