1

I need to get "name" tag's value where tag is "required" and "optional".How can do it in PHP? I want result like: required - binary name, doc test name optional - doc name1, doc name2, doc name3

<?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>
1
  • did @Phil's answer regarding SimpleXML/XPath work in that other question? how is this all that different from that question? Commented Oct 20, 2011 at 5:33

2 Answers 2

0

You can use the XML Parser or SimpleXML.

$xml = new SimpleXMLElement($yourXml);
Sign up to request clarification or add additional context in comments.

Comments

0

SimpleXML with 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);

1 Comment

I replace $xml = simplexml_load_file('text.xml'); on place of $xml = new SimpleXMLElement($xmlSrc); then its working fine for me.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.