Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
253 views
in Technique[技术] by (71.8m points)

php explode on xml file

Here is the xml file I have. ( I do not have editing abilities of the parser that creates this file... so hince why I am asking my question below).

<?xml version="1.0" encoding="UTF-8"?>
<JobSearchResults LookID="arkansas">
<!-- Served from qs-b-02.oc.careercast.com -->
<QueryString>clientid=arkansas&amp;stringVar=xmlString&amp;pageSize=200&amp;searchType=featured&amp;outFormat=xml</QueryString>
<channel>
<title>JobsArkansas Listings</title>
<items></items>
</channel>
<item>
     <JobID>73451732</JobID>
     <Title>Radiology</Title>
     <Employer>Baptist-Health         </Employer>
     <Location>LITTLE ROCK, AR</Location>
     <Description><![CDATA[IMMEDIATE OPENINGS for:Diabetes Patient Educator, RN Community Education Nurse-RN Baptist Health Community Outreach?Diabetes Patient Educator, RN: Full-time: 8am-5pm Minimum Requirements:?Requires graduation from a state approved school/college of Nursing?Current licensure by theAR State Board of Nursing. ?2+ years bedside experience preferred. ?Certified Diabetes Educator certificate preferred. ?Community Education Nurse - RNMinimum Requirements (PRN: Varies):?Current RN license & 2 years clinical experience. ?Current CPR certification. Apply online at: baptist-health.com/jobs]]></Description>
     <LookID>arkansas</LookID>
     <Url>http://jobs.arkansasonline.com/careers/jobsearch/detail/jobId/73451732/viewType/featured</Url>
  </item>
    <item>
     <JobID>66703190</JobID>
     <Title>Telemarketing Agents</Title>
     <Employer>Arkansas Democrat Gazette         </Employer>
     <Location>Bryant, AR</Location>
     <Description><![CDATA[Telemarketing Agents Needed Position is part-time Starting at $9.00/hour Plus Bonus! Looking for dependable and professional applicants. We are a drug and smoke free company located in Bryant. Hours: Mon-Fri 4:30pm to 8:30pm and Sat. 9am to 6pm. Send resumes to: [email protected] or P.O. Box 384 Bryant, AR 72089 Arkansas Democrat Gazette Arkansas' Largest NewspaperCLICK THE IMAGE TO VIEW THE AD]]></Description>
     <LookID>arkansas</LookID>
     <Url>http://jobs.arkansasonline.com/careers/jobsearch/detail/jobId/66703190/viewType/featured</Url>
  </item>
</JobSearchResults>
sas</LookID>
         <Url>http://jobs.arkansasonline.com/careers/jobsearch/detail/jobId/73004973/viewType/featured</Url>
      </item>

</JobSearchResults>    

I am using the following php code to open the above xml file, and take out the following: sas http://jobs.arkansasonline.com/careers/jobsearch/detail/jobId/73004973/viewType/featured

</JobSearchResults>    

However the php code below:

error_reporting(E_ALL | E_STRICT);
ini_set('display_errors', 1);

// Load File
// $today = date('Ymd');
$file = '/Users/jasenburkett/Sites/jobsark/feed' . '.xml';
$newfile = '/Users/jasenburkett/Sites/jobsark/feed' . '.xml';

$file_contents = file_get_contents($file);

$data = $file_contents;

$parts = explode("</JobSearchResults>", $data);

// Save File
file_put_contents($newfile, $data);

?>

This works, however it deletes everything after the first </JobSearchResults> and I want to keep the very last one...

Any ideas where i am going wrong?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

If what you are looking for is a way to cleanup the corrupt XML file, you can just add the string that gets missing when the explode is run. It is all a bit hackish, but it works.

$file = '/Users/jasenburkett/Sites/jobsark/feed.xml';
$data = file_get_contents($file);

$split = "</JobSearchResults>";   // Split on this
$parts = explode($split, $data);  // Make the split
$cleanedXml = $parts[0];          // Use first part
$cleanedXml .= $split;            // Put back last ending tag

file_put_contents($file, $cleanedXml);

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

1.4m articles

1.4m replys

5 comments

57.0k users

...