2011-10-20 3 views
1

태그가 "필수"및 "선택 사항"인 경우 "name"태그의 값을 가져와야합니다. PHP에서 어떻게 할 수 있습니까? 나는 결과를 원하는 같은 : 필요 - 바이너리 명, 문서 테스트 이름 옵션 - 문서 이름 1, 문서의 NAME2, 문서의 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을 사용할 수 있습니다. XPath에와

$xml = new SimpleXMLElement($yourXml); 
0

SimpleXML을 : 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 = 새로운 SimpleXMLElement ($ xmlSrc); 그 다음 나를 위해 그것의 일 벌금. – dayana