Assignments On Class 37: Working with XML and JSON

Rashmi Mishra
0

  Assignments On Class 37: Working with XML and JSON

Assignments: Working with XML and JSON in PHP

Assignment 1: Parsing and Manipulating XML

Objective: Learn how to parse and manipulate XML data using the SimpleXML extension in PHP.


Task: Write a PHP script that reads an XML file containing information about books and prints out the book details (title, author, publisher) in a structured format.

The XML file (books.xml) has the following structure:

xml

Copy code

<library>

    <book>

        <title>PHP for Beginners</title>

        <author>John Smith</author>

        <publisher>Tech Books</publisher>

    </book>

    <book>

        <title>Advanced PHP</title>

        <author>Jane Doe</author>

        <publisher>Advanced Publishers</publisher>

    </book>

</library>

Solution:

1.   Load the XML file using simplexml_load_file().

2.   Iterate through the XML data and print the book details.

php

Copy code

<?php

$xml = simplexml_load_file('books.xml');

 

foreach ($xml->book as $book) {

    echo "Title: " . $book->title . "\n";

    echo "Author: " . $book->author . "\n";

    echo "Publisher: " . $book->publisher . "\n";

    echo "---------------------\n";

}

?>

Explanation:

  • simplexml_load_file() loads the XML file into a SimpleXML object.
  • A foreach loop is used to iterate through each <book> element, and its children (title, author, publisher) are accessed using object notation.

Assignment 2: Creating XML Data Using PHP

Objective: Learn how to create XML data using the SimpleXML extension.


Task: Write a PHP script that generates an XML file for a book with the following details:

  • Title: "Learning PHP"
  • Author: "John Doe"
  • Publisher: "PHP Books"

Solution:

1.   Create a new SimpleXMLElement object.

2.   Add child elements to the XML.

3.   Save the XML to a file using asXML().

php

Copy code

<?php

// Create a new XML structure

$book = new SimpleXMLElement('<book/>');

 

// Add child elements

$book->addChild('title', 'Learning PHP');

$book->addChild('author', 'John Doe');

$book->addChild('publisher', 'PHP Books');

 

// Save XML to a file

$book->asXML('new_book.xml');

 

echo "XML file has been created successfully.";

?>

Explanation:

  • A new SimpleXMLElement object is created with the root element <book>.
  • addChild() is used to add the <title>, <author>, and <publisher> elements.
  • asXML() is used to save the XML structure to a file named new_book.xml.

Assignment 3: Converting JSON to PHP Array

Objective: Learn how to decode JSON data into a PHP array.


Task: Write a PHP script that decodes the following JSON string into a PHP associative array and prints the decoded values:

json

Copy code

{

    "name": "John Doe",

    "age": 30,

    "email": "john.doe@example.com"

}

Solution:

1.   Use json_decode() to decode the JSON string into a PHP array.

2.   Access the array values and print them.

php

Copy code

<?php

$jsonString = '{"name": "John Doe", "age": 30, "email": "john.doe@example.com"}';

 

// Decode JSON to associative array

$data = json_decode($jsonString, true);

 

// Access and print array elements

echo "Name: " . $data['name'] . "\n";

echo "Age: " . $data['age'] . "\n";

echo "Email: " . $data['email'] . "\n";

?>

Explanation:

  • json_decode() converts the JSON string into an associative array because the second argument is set to true.
  • The array elements are accessed using standard array notation ($data['name'], $data['age'], etc.).

Assignment 4: Encoding PHP Data to JSON

Objective: Learn how to encode PHP arrays or objects into JSON format.


Task: Write a PHP script that encodes the following PHP array into a JSON string:

php

Copy code

$data = [

    "name" => "Alice",

    "age" => 25,

    "city" => "New York"

];

Print the resulting JSON string.

Solution:

1.   Use json_encode() to encode the PHP array into JSON.

2.   Print the JSON string.

php

Copy code

<?php

$data = [

    "name" => "Alice",

    "age" => 25,

    "city" => "New York"

];

 

// Encode PHP array to JSON

$jsonString = json_encode($data);

 

// Print the resulting JSON string

echo $jsonString;

?>

Output:

json

Copy code

{"name":"Alice","age":25,"city":"New York"}

Explanation:

  • json_encode() converts the PHP array into a JSON string.
  • The result is a string in JSON format.

Assignment 5: Converting JSON to XML

Objective: Learn how to convert JSON data into XML format.


Task: Write a PHP script that converts the following JSON string into XML format and prints it:

json

Copy code

{

    "title": "PHP for Beginners",

    "author": "John Smith",

    "publisher": "Tech Publishers"

}

Solution:

1.   Decode the JSON string into a PHP array.

2.   Create XML structure using SimpleXML and populate it with the array data.

php

Copy code

<?php

$jsonString = '{"title": "PHP for Beginners", "author": "John Smith", "publisher": "Tech Publishers"}';

 

// Decode JSON to PHP array

$data = json_decode($jsonString, true);

 

// Create a new SimpleXMLElement object

$xml = new SimpleXMLElement('<book/>');

 

// Add elements to the XML

array_walk_recursive($data, function($value, $key) use ($xml) {

    $xml->addChild($key, $value);

});

 

// Output the XML

echo $xml->asXML();

?>

Output:

xml

Copy code

<?xml version="1.0"?>

<book>

    <title>PHP for Beginners</title>

    <author>John Smith</author>

    <publisher>Tech Publishers</publisher>

</book>

Explanation:

  • The json_decode() function converts the JSON string into an associative array.
  • array_walk_recursive() is used to traverse the array and add each key-value pair to the XML document using addChild().
  • asXML() outputs the XML structure as a string.

Assignment 6: Converting XML to JSON

Objective: Learn how to convert XML data into JSON format.


Task: Write a PHP script that converts the following XML data into JSON format and prints it:

xml

Copy code

<book>

    <title>Advanced PHP</title>

    <author>Jane Doe</author>

    <publisher>Tech Press</publisher>

</book>

Solution:

1.   Load and parse the XML using simplexml_load_string().

2.   Convert the SimpleXML object to JSON using json_encode().

php

Copy code

<?php

$xmlString = <<<XML

<book>

    <title>Advanced PHP</title>

    <author>Jane Doe</author>

    <publisher>Tech Press</publisher>

</book>

XML;

 

// Load the XML string into a SimpleXML object

$xml = simplexml_load_string($xmlString);

 

// Convert SimpleXML object to JSON

$json = json_encode($xml);

 

// Output the JSON string

echo $json;

?>

Output:

json

Copy code

{"title":"Advanced PHP","author":"Jane Doe","publisher":"Tech Press"}

Explanation:

  • simplexml_load_string() is used to parse the XML string into a SimpleXML object.
  • json_encode() converts the SimpleXML object into JSON format.

Conclusion:

These assignments cover fundamental tasks like parsing, manipulating, and converting XML and JSON data in PHP. By completing these exercises, students will gain a deeper understanding of how to work with both XML and JSON, and how to use these formats for data exchange in PHP applications.


Post a Comment

0Comments

Post a Comment (0)