2017-02-17 2 views
1

Я хочу получить атрибут типа атрибута (ss: Name) из xml-элемента с php. Но это не сработает.Как получить атрибут типа атрибута (ss: Name) из элемента xml с php

Это мой XML-файл:

<?xml version="1.0"?> 
<?mso-application progid="Excel.Sheet"?> 
<Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet" 
xmlns:o="urn:schemas-microsoft-com:office:office" 
xmlns:x="urn:schemas-microsoft-com:office:excel" 
xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet" 
xmlns:html="http://www.w3.org/TR/REC-html40" 
xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 
<Worksheet ss:Name="097-097-024"> 
</Worksheet> 
</Workbook> 

и мой PHP источник

<?php 
$xml = simplexml_load_file($fichier); 
$attr = $xml->Worksheet->Workbook->attributes(); 
echo $attr['ss:Name']; 
?> 

Можете ли вы помочь моему получить сс: значение Name?

Благодаря

ответ

0

Префикс атрибуте ss это пространство имен.

Вы можете получить атрибуты для этого пространства имен, запрашивая его в качестве аргумента для Attributes() как это:

$ node-> Атрибуты ('урна: схемы-Microsoft-ком: офис: электронные таблицы');

$xml = '<?xml version="1.0"?> 
<?mso-application progid="Excel.Sheet"?> 
<Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet" 
xmlns:o="urn:schemas-microsoft-com:office:office" 
xmlns:x="urn:schemas-microsoft-com:office:excel" 
xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet" 
xmlns:html="http://www.w3.org/TR/REC-html40" 
xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 
<Worksheet ss:Name="097-097-024"> 
</Worksheet> 
</Workbook>'; 

$xml = simplexml_load_string($xml); 
foreach($xml->Worksheet->Attributes('urn:schemas-microsoft-com:office:spreadsheet') as $key=>$val) { 
    echo "$key: $val\n"; 
} 

выходы

Имя: 097-097-024

также отметить, что ваш верхний узел Worksheet не Worksheet->Workbook

Смежные вопросы