|
получить родителя элемента от SimpleXMLElement
|
|||
---|---|---|---|
#18+
автор<?xml version="1.0" encoding="UTF-8"?> <Stundenplan> <tag>1 <predmet time = "4" at = "1" kabinet = "14а">4</predmet> <predmet time = "5" at = "1" kabinet = "14a">6</predmet> <predmet time = "6" at = "0" kabinet = "27а">1</predmet> <predmet time = "7" at = "0" kabinet = "27a">6</predmet></tag> <tag>2 <predmet time = "5" at = "1" kabinet = "27a">5</predmet> <predmet time = "6" at = "1" kabinet = "27a">5</predmet> <predmet time = "7" at = "1" kabinet = "">3</predmet> </tag> <tag>3 <predmet time = "4" at = "1" kabinet = "">7</predmet> <predmet time = "5" at = "1" kabinet = "17а">1</predmet> </tag> <tag>4 <predmet time = "3" at = "5">9</predmet> <predmet time = "4" at = "5" kabinet = "нет">10</predmet> <predmet time = "5" at = "0">7</predmet> <predmet time = "6" at = "0">8</predmet> </tag> <tag>5 <predmet time = "4" at = "0">4</predmet> <predmet time = "5" at = "0">2</predmet> <predmet time = "6" at = "0">3</predmet> </tag> <tag>6 </tag> </Stundenplan> такой вот xml. на php код: автор<?php $xml = simplexml_load_file("tag.xml"); $nodes = $xml->xpath('/Stundenplan/tag/*'); foreach ($nodes as $node) { $parentPredmet = $node->xpath('/..'); // echo $parentPredmet."<br>"; var_dump($parentPredmet); echo $node."<hr>"; // выводим текстовое содержимое узла } ?> Вот я перебираю то, что находится в /Stundenplan/tag/*. то есть эти перебираемые элементы находятся в $node. И вот из этого $node я хочу через Xpath узнать его tag. для <tag> = 1: <tag>1<predmet time = "4" at = "1" kabinet = "14а">4</predmet> <predmet time = "5" at = "1" kabinet = "14a">6</predmet> <predmet time = "6" at = "0" kabinet = "27а">1</predmet> <predmet time = "7" at = "0" kabinet = "27a">6</predmet></tag> вот перебираю я через foreach ($nodes as $node) <predmet> Из примера видно, что это 4 6 1 6 , и у этих 4,6,1,6 общий родитель - <tag>, и он равен "1". Я хочу, перебирая их узнать Xpath'ем их предка из непосредственно $node. Уже не один день мучаюсь. Это можно вообще сделать? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.10.2009, 12:04 |
|
получить родителя элемента от SimpleXMLElement
|
|||
---|---|---|---|
#18+
Код: plaintext
С уважением, Vasilisk ... |
|||
:
Нравится:
Не нравится:
|
|||
07.10.2009, 22:32 |
|
получить родителя элемента от SimpleXMLElement
|
|||
---|---|---|---|
#18+
две точки возвращают соседей авторarray(1) { [0]=> object(SimpleXMLElement)#17 (1) { ["predmet"]=> array(3) { [0]=> string(1) "6" [1]=> string(1) "6" [2]=> string(1) "5" } } } 6 array(1) { [0]=> object(SimpleXMLElement)#18 (1) { ["predmet"]=> array(3) { [0]=> string(1) "6" [1]=> string(1) "6" [2]=> string(1) "5" } } } 6 array(1) { [0]=> object(SimpleXMLElement)#17 (1) { ["predmet"]=> array(3) { [0]=> string(1) "6" [1]=> string(1) "6" [2]=> string(1) "5" } } } 5 array(1) { [0]=> object(SimpleXMLElement)#18 (1) { ["predmet"]=> array(3) { [0]=> string(1) "7" [1]=> string(1) "2" [2]=> string(1) "3" } } } 7 array(1) { [0]=> object(SimpleXMLElement)#17 (1) { ["predmet"]=> array(3) { [0]=> string(1) "7" [1]=> string(1) "2" [2]=> string(1) "3" } } } 2 array(1) { [0]=> object(SimpleXMLElement)#18 (1) { ["predmet"]=> array(3) { [0]=> string(1) "7" [1]=> string(1) "2" [2]=> string(1) "3" } } } 3 array(1) { [0]=> object(SimpleXMLElement)#17 (1) { ["predmet"]=> array(3) { [0]=> string(1) "4" [1]=> string(1) "1" [2]=> string(1) "1" } } } 4 array(1) { [0]=> object(SimpleXMLElement)#18 (1) { ["predmet"]=> array(3) { [0]=> string(1) "4" [1]=> string(1) "1" [2]=> string(1) "1" } } } 1 array(1) { [0]=> object(SimpleXMLElement)#17 (1) { ["predmet"]=> array(3) { [0]=> string(1) "4" [1]=> string(1) "1" [2]=> string(1) "1" } } } 1 array(1) { [0]=> object(SimpleXMLElement)#18 (1) { ["predmet"]=> array(3) { [0]=> string(1) "5" [1]=> string(1) "9" [2]=> string(1) "1" } } } 5 array(1) { [0]=> object(SimpleXMLElement)#17 (1) { ["predmet"]=> array(3) { [0]=> string(1) "5" [1]=> string(1) "9" [2]=> string(1) "1" } } } 9 array(1) { [0]=> object(SimpleXMLElement)#18 (1) { ["predmet"]=> array(3) { [0]=> string(1) "5" [1]=> string(1) "9" [2]=> string(1) "1" } } } 1 array(1) { [0]=> object(SimpleXMLElement)#17 (1) { ["predmet"]=> array(3) { [0]=> string(1) "8" [1]=> string(1) "3" [2]=> string(1) "4" } } } 8 array(1) { [0]=> object(SimpleXMLElement)#18 (1) { ["predmet"]=> array(3) { [0]=> string(1) "8" [1]=> string(1) "3" [2]=> string(1) "4" } } } 3 array(1) { [0]=> object(SimpleXMLElement)#17 (1) { ["predmet"]=> array(3) { [0]=> string(1) "8" [1]=> string(1) "3" [2]=> string(1) "4" } } } 4 ... |
|||
:
Нравится:
Не нравится:
|
|||
07.10.2009, 23:19 |
|
получить родителя элемента от SimpleXMLElement
|
|||
---|---|---|---|
#18+
проблема была в simplexml_load_file. Нужно через ДОМ делать. Он xpath лучше понимает. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2009, 15:56 |
|
|
start [/forum/topic.php?fid=14&msg=36240811&tid=1333435]: |
0ms |
get settings: |
12ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
36ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
46ms |
get tp. blocked users: |
2ms |
others: | 15ms |
total: | 148ms |
0 / 0 |