尝试使用laravel解析xml时出错

I am trying to parse the following xml and keep on running into the same error message "Unable to parse XML from string", please see the below error message.

protected function resolveXmlObject($xml): Document
{
    if (! $xml) {
        throw new InvalidContentException('Unable to parse XML from string.');
    }

    return $this->document->setContent($xml);
}

I am new to using xml and am unsure what the issue is with the code that I have provided. If someone could point me in the right direction as to what I am doing wrong that would be greatly appreciated.

Controller

use Orchestra\Parser\Xml\Facade as XmlParser;

public function upload()
{
    $xml = XmlParser::load(asset('xml/data.xml'));

    $user = $xml->parse([
        'id' => ['uses' => 'programme::id'],
        'name' => ['uses' => 'programme.name'],
    ]);

    return view ('projects.upload', compact('user'));
}

XML

<?xml version="1.0" encoding=”UTF-8”?>

    <programme data> 
        <title>Programme Data</title>

        <programme id="1"> 
            <programme 1>
                <name>A nightmare on Elm Street</name> 
                <image path>../images/Elm Street.jpg</image path>
                <mood>Scared</mood>
            </programme 1>
        </programme>

View

<!DOCTYPE html>
<html>
    <head>
        <title></title>
    </head>

    <body>
        <h1>Moodslider</h1>

        <div class="box">
            <td style="text-align: center; vertical-align: middle;">
        </div>

        <div class="slidecontainer">Agitated
            <input type="range" min="1" max="5" value="1" class="slider" id="myRange">Calm
        </div>

        <div class="slidecontainer">Happy
            <input type="range" min="1" max="5" value="1" class="slider" id="myRange">Sad
        </div>

        <div class="slidecontainer">Tired
            <input type="range" min="1" max="5" value="1" class="slider" id="myRange">Wide Awake
        </div>

        <div class="slidecontainer">Scared
            <input type="range" min="1" max="5" value="1" class="slider" id="myRange">Fearless
        </div>

        <form action="/action_page.php">

            <input type="text" name="fname" placeholder="No content 1"><br>

            <input type="text" name="lname" placeholder="No content 2"><br>

        </form>

        <form action="/projects/upload" method="get" enctype="multipart/form-      data">Select image to upload:

        <!--{{ csrf_field() }} -->
            <input type="file" name="fileToUpload" id="fileToUpload">

            <input type="submit" value="Upload Image" name="submit">

        </form>
    </body>
</html>

The call to asset('xml/data.xml') does not give you a file or an internal path, it gives you the public URL to the file inside the public folder. Try it with public_path('xml/data.xml').

https://laravel.com/docs/5.7/helpers#method-public-path

E.g.

$xml = XmlParser::load(public_path('xml/data.xml'));