2011-10-20 43 views
1

我需要在標記爲「必需」和「可選」的情況下獲取「名稱」標記的值。如何在PHP中執行此操作? 我想導致這樣的: 要求 - 二進制名稱,文檔測試名稱 可選 - 文檔名稱1,文檔名稱2,DOC NAME3在PHP中解析返回多個值的XML

<?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解析器或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