Sadece XPath ile başladı ve PHP'nin SimpleXML
nesnelerle uygulama bulunuyor kullanarak alıyorum. Şu anda //zuq:*
SimpleXML
verilen bir belgede zuq
öneki ile nesneleri bir dizi oluşturmak için kullanıyorum. Ancak, ne olursa olsun ad tüm soyunu başvurmak için SimpleXML
nesneler istiyorum. I //child::zuq:*
kullanarak çalıştı, ancak oluşturduğu SimpleXML
ağaçlar tam olması görünmüyor.
Esasen, yakalanan nesneler zuq
dahil olursa olsun ad tüm alt öğeleri içeren belge boyunca zuq
ad tüm üst düzey nesneler, olmalıdır.
Her SimpleXML
kök nesnesi tüm soyunu içeren (örneğin zuq
gibi) verilen ad en üst düzey belge elemanı verilmiş bir belgeden tl;dr: How can I create a SimpleXML
nesne ağacı dedi ne olursa olsun soyundan ad eleman? XPath bir koşul değil ama benim okuma dayalı iyi bir seçim gibi görünüyor. Strong>
test.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:zuq="http://localhost/zuq">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>
<body>
<h1>Heading</h1>
<p>Paragraph</p>
<zuq:region name="myRegion">
<div class="myClass">
<h1><zuq:data name="myDataHeading" /></h1>
<p>
<zuq:data name="myDataParagraph">
<zuq:format type="trim">
<zuq:param name="length" value="200" />
<zuq:param name="append">
<span class="paragraphTrimOverflow">...</span>
</zuq:param>
</zuq:format>
</zuq:data>
</p>
</div>
</zuq:region>
</body>
</html>
$sxml = simplexml_load_file('test.html');
$sxml_zuq = $sxml->xpath('//zuq:*/descendant-or-self::node()');
print_r($sxml_zuq);
Üretir:
Array
(
[0] => SimpleXMLElement Object
(
[@attributes] => Array
(
[name] => myRegion
)
[div] => SimpleXMLElement Object
(
[@attributes] => Array
(
[class] => myClass
)
[h1] => SimpleXMLElement Object //I don't know why these don't contain their zuq descendants
(
)
[p] => SimpleXMLElement Object
(
)
)
)
[1] => SimpleXMLElement Object
(
[@attributes] => Array
(
[name] => myRegion
)
[div] => SimpleXMLElement Object
(
[@attributes] => Array
(
[class] => myClass
)
[h1] => SimpleXMLElement Object
(
)
[p] => SimpleXMLElement Object
(
)
)
)
[2] => SimpleXMLElement Object
(
[@attributes] => Array
(
[class] => myClass
)
[h1] => SimpleXMLElement Object
(
)
[p] => SimpleXMLElement Object
(
)
)
[3] => SimpleXMLElement Object
(
[@attributes] => Array
(
[class] => myClass
)
[h1] => SimpleXMLElement Object
(
)
[p] => SimpleXMLElement Object
(
)
)
[4] => SimpleXMLElement Object
(
)
[5] => SimpleXMLElement Object
(
[@attributes] => Array
(
[name] => myDataHeading
)
)
[6] => SimpleXMLElement Object
(
[@attributes] => Array
(
[class] => myClass
)
[h1] => SimpleXMLElement Object
(
)
[p] => SimpleXMLElement Object
(
)
)
[7] => SimpleXMLElement Object
(
)
[8] => SimpleXMLElement Object
(
)
[9] => SimpleXMLElement Object
(
[@attributes] => Array
(
[name] => myDataParagraph
)
)
[10] => SimpleXMLElement Object
(
[@attributes] => Array
(
[name] => myDataParagraph
)
)
[11] => SimpleXMLElement Object
(
[@attributes] => Array
(
[type] => trim
)
)
[12] => SimpleXMLElement Object
(
[@attributes] => Array
(
[type] => trim
)
)
[13] => SimpleXMLElement Object
(
[@attributes] => Array
(
[name] => length
[value] => 200
)
)
[14] => SimpleXMLElement Object
(
[@attributes] => Array
(
[type] => trim
)
)
[15] => SimpleXMLElement Object
(
[@attributes] => Array
(
[name] => append
)
[span] => ...
)
[16] => SimpleXMLElement Object
(
[@attributes] => Array
(
[name] => append
)
[span] => ...
)
[17] => SimpleXMLElement Object
(
[@attributes] => Array
(
[class] => paragraphTrimOverflow
)
[0] => ...
)
[18] => SimpleXMLElement Object
(
[@attributes] => Array
(
[class] => paragraphTrimOverflow
)
[0] => ...
)
[19] => SimpleXMLElement Object
(
[@attributes] => Array
(
[name] => append
)
[span] => ...
)
[20] => SimpleXMLElement Object
(
[@attributes] => Array
(
[type] => trim
)
)
[21] => SimpleXMLElement Object
(
[@attributes] => Array
(
[name] => myDataParagraph
)
)
[22] => SimpleXMLElement Object
(
)
[23] => SimpleXMLElement Object
(
[@attributes] => Array
(
[class] => myClass
)
[h1] => SimpleXMLElement Object
(
)
[p] => SimpleXMLElement Object
(
)
)
[24] => SimpleXMLElement Object
(
[@attributes] => Array
(
[name] => myRegion
)
[div] => SimpleXMLElement Object
(
[@attributes] => Array
(
[class] => myClass
)
[h1] => SimpleXMLElement Object
(
)
[p] => SimpleXMLElement Object
(
)
)
)
)