fork download
  1. <?php
  2.  
  3. $xml = <<<'XML'
  4. <Лицевой_счёт id="FaceAcc_00vX">
  5. <Населенный_пункт idref="Населенный_пункт_0A11">
  6. </Населенный_пункт>
  7. <Улица idref="Улица_0A11">
  8. </Улица>
  9. <Член_хозяйства id="Hozmemb_0211">
  10. <Каталог idref="Catalog_0031">
  11. </Каталог>
  12. <Субъект idref="ФизическоеЛицо_0011">
  13. </Субъект>
  14. <Индекс>368080</Индекс>
  15. <Страна idref="Страна_0001">
  16. </Страна>
  17. <Регион idref="Регион_0001000I">
  18. </Регион>
  19. <Район idref="Район_0A11">
  20. </Район>
  21. <Населенный_пункт idref="Населенный_пункт_0A11">
  22. </Населенный_пункт>
  23. <Улица idref="Улица_0A11">
  24. </Улица>
  25. <Дом>1081</Дом>
  26. <Родственное_отношение idref="Родственное_отношение_0001">
  27. </Родственное_отношение>
  28. <Глава>false</Глава>
  29. <Сведение_о_пребывании id="HozMembC_0211">
  30. <Тип_пребывания>1.00000</Тип_пребывания>
  31. <Тип_регистрации>2.00000</Тип_регистрации>
  32. <Дата_прибытия>2000-01-01</Дата_прибытия>
  33. <Умерший>false</Умерший>
  34. <Снят_с_учета>false</Снят_с_учета>
  35. </Сведение_о_пребывании>
  36. <Сведение_о_документах id="HozMembA_0211">
  37. <Основной_документ>true</Основной_документ>
  38. <Вид_документа idref="Персональный_документ_000X">
  39. </Вид_документа>
  40. </Сведение_о_документах>
  41. </Член_хозяйства>
  42. </Лицевой_счёт>
  43. <Лицевой_счёт id="FaceAcc_11vX">
  44. <Населенный_пункт idref="Населенный_пункт_0A11">
  45. </Населенный_пункт>
  46. <Улица idref="Улица_0A11">
  47. </Улица>
  48. <Член_хозяйства id="Hozmemb_0211">
  49. <Каталог idref="Catalog_0031">
  50. </Каталог>
  51. <Субъект idref="ФизическоеЛицо_1111">
  52. </Субъект>
  53. <Индекс>368080</Индекс>
  54. <Страна idref="Страна_0001">
  55. </Страна>
  56. <Регион idref="Регион_0001000I">
  57. </Регион>
  58. <Район idref="Район_0A11">
  59. </Район>
  60. <Населенный_пункт idref="Населенный_пункт_0A11">
  61. </Населенный_пункт>
  62. <Улица idref="Улица_0A1122">
  63. </Улица>
  64. <Дом>1081</Дом>
  65. <Родственное_отношение idref="Родственное_отношение_0001">
  66. </Родственное_отношение>
  67. <Глава>false</Глава>
  68. <Сведение_о_пребывании id="HozMembC_0211">
  69. <Тип_пребывания>1.00000</Тип_пребывания>
  70. <Тип_регистрации>2.00000</Тип_регистрации>
  71. <Дата_прибытия>2000-01-01</Дата_прибытия>
  72. <Умерший>false</Умерший>
  73. <Снят_с_учета>false</Снят_с_учета>
  74. </Сведение_о_пребывании>
  75. <Сведение_о_документах id="HozMembA_0211">
  76. <Основной_документ>true</Основной_документ>
  77. <Вид_документа idref="Персональный_документ_000X">
  78. </Вид_документа>
  79. </Сведение_о_документах>
  80. </Член_хозяйства>
  81. </Лицевой_счёт>
  82. XML;
  83.  
  84. $dom = new DOMDocument;
  85. $dom->loadXML('<data>' . $xml . '</data>');
  86. $xpath = new DOMXPath($dom);
  87.  
  88. echo 'Способ 1:', PHP_EOL;
  89. foreach($xpath->query('//Лицевой_счёт/Член_хозяйства/Улица/@idref | //Лицевой_счёт/Член_хозяйства/Субъект/@idref') as $item) {
  90. echo $item->nodeValue, PHP_EOL;
  91. }
  92. echo '---------------------------', PHP_EOL;
  93. echo 'Способ 2:', PHP_EOL;
  94. $record = $xpath->query('//Лицевой_счёт[@id="FaceAcc_00vX"]/Член_хозяйства')->item(0);
  95. echo 'имя: ' . $record->getElementsByTagName('Субъект')->item(0)->getAttribute('idref'), PHP_EOL;
  96. echo 'улица: ' . $record->getElementsByTagName('Улица')->item(0)->getAttribute('idref');
Success #stdin #stdout 0.02s 24740KB
stdin
Standard input is empty
stdout
Способ 1:
ФизическоеЛицо_0011
Улица_0A11
ФизическоеЛицо_1111
Улица_0A1122
---------------------------
Способ 2:
имя: ФизическоеЛицо_0011
улица: Улица_0A11