2011-10-20 2 views
1

Мне нужно получить значение тега «name», где тег «требуется» и «необязательно». Как это можно сделать в PHP? я хочу привести как: требуется - бинарное имя, название теста дока опционально - документ name1, док имя2, док name3Проанализируйте XML в PHP, который возвращает несколько значений

<?xml version="1.0" encoding="UTF-8"?> 
<test> 
    <required> 
     <item type="binary"> 
      <name>binary name</name> 
      <url visibility="restricted">test.exe</url> 
     </item> 
     <item type="document" subtype="mytype"> 
      <name>doc test name</name> 
      <url visiblity="visible">my.pdf</url> 
     </item> 
    </required> 
    <optional> 
     <item type="document"> 
      <name>doc name1</name> 
      <url visiblity="visible">user_guide1.pdf</url> 
     </item> 
     <item type="document2"> 
      <name>doc name2</name> 
      <url visiblity="visible">user_guide2.pdf</url> 
     </item> 

     <item type="document3"> 
      <name>doc name3</name> 
      <url visiblity="visible">user_guide3.pdf</url> 
     </item> 
    </optional> 
    <dependencies> 
     <dependency> 
      <url>test4.xml</url> 
     </dependency> 
    </dependencies> 
</test> 
+0

сделал @ [ответ] Фил (http://stackoverflow.com/questions/7831194/parse-xml-in-php-by-specific-attribute/7831212 # 7831212) относительно SimpleXML/XPath работают в этом другом [вопрос] (http://stackoverflow.com/questions/7831194/parse-xml-in-php-by-specific-attribute)? как все это отличается от этого вопроса? – imm

+0

2 вопроса разные. – dayana

ответ

0

Вы можете использовать XML Parser или SimpleXML.

$xml = new SimpleXMLElement($yourXml); 
0

SimpleXML с XPath: http://www.php.net/manual/en/simplexmlelement.xpath.php

$xmlSrc =<<<XML 
<test> 
    <required> 
     <item type="binary"> 
      <name>binary name</name> 
      <url visibility="restricted">test.exe</url> 
     </item> 
     <item type="document" subtype="mytype"> 
      <name>doc test name</name> 
      <url visiblity="visible">my.pdf</url> 
     </item> 
    </required> 
    <optional> 
     <item type="document"> 
      <name>doc name1</name> 
      <url visiblity="visible">user_guide1.pdf</url> 
     </item> 
     <item type="document2"> 
      <name>doc name2</name> 
      <url visiblity="visible">user_guide2.pdf</url> 
     </item> 

     <item type="document3"> 
      <name>doc name3</name> 
      <url visiblity="visible">user_guide3.pdf</url> 
     </item> 
    </optional> 
    <dependencies> 
     <dependency> 
      <url>test4.xml</url> 
     </dependency> 
    </dependencies> 
</test> 
XML; 


$xml = new SimpleXMLElement($xmlSrc); 

$required_names = $xml->xpath('/test/required/item/name'); 
$optional_names = $xml->xpath('/test/optional/item/name'); 


print_r($required_names); 
print_r($optional_names); 
+0

Его возврат пустой для меня. – dayana

+0

Я обновил образец кода, так что это более полный пример. –

+0

Я заменяю $ xml = simplexml_load_file ('text.xml'); на месте $ xml = new SimpleXMLElement ($ xmlSrc); то его рабочий штраф для меня. – dayana

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