How to geneate media:content xml using php
i facing few issue's i don't know how to resolve it
i want to write following rss feed using php and mysql:
<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
<channel>
<item>
<title>Here is the title</title>
<link>http://example.com</link>
<media:content medium="image" url="http://example.com/image.jpg"></media:content>
<media:content medium="video" url="http://example.com/video.mp4"></media:content>
</item>
</channel>
</rss>
here is my code in php:
$db = new Db();
$result = $db->select("select * from column");
$xml = new SimpleXMLElement('<channel/>');
for ($i = 0; $i < count($result); $i++) {
$title = $result[$i]title
$link = $result[$i]['link'];
$image = $result[$i]['image'];
$video = $result[$i]['video'];
$item = $xml->addChild('item');
$item->title = $title
$item->link = $link
$item->image = ?? ;
$item->video = ?? ;
}
Header('Content-type: text/xml');
print($xml->asXML());
just don't know how to set image and video because there tags are different like media:content and url of both image and video tags. please let me know
thanks
php xml
add a comment |
i facing few issue's i don't know how to resolve it
i want to write following rss feed using php and mysql:
<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
<channel>
<item>
<title>Here is the title</title>
<link>http://example.com</link>
<media:content medium="image" url="http://example.com/image.jpg"></media:content>
<media:content medium="video" url="http://example.com/video.mp4"></media:content>
</item>
</channel>
</rss>
here is my code in php:
$db = new Db();
$result = $db->select("select * from column");
$xml = new SimpleXMLElement('<channel/>');
for ($i = 0; $i < count($result); $i++) {
$title = $result[$i]title
$link = $result[$i]['link'];
$image = $result[$i]['image'];
$video = $result[$i]['video'];
$item = $xml->addChild('item');
$item->title = $title
$item->link = $link
$item->image = ?? ;
$item->video = ?? ;
}
Header('Content-type: text/xml');
print($xml->asXML());
just don't know how to set image and video because there tags are different like media:content and url of both image and video tags. please let me know
thanks
php xml
Namespace prefix, such asmedia
in your XML, need to be declared somewhere (something along this line:xmlns:media="foo"
). As posted the XML is not well-formed. Now, on which element do you want the ns prefix declaration to be?
– har07
May 4 '16 at 22:32
add a comment |
i facing few issue's i don't know how to resolve it
i want to write following rss feed using php and mysql:
<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
<channel>
<item>
<title>Here is the title</title>
<link>http://example.com</link>
<media:content medium="image" url="http://example.com/image.jpg"></media:content>
<media:content medium="video" url="http://example.com/video.mp4"></media:content>
</item>
</channel>
</rss>
here is my code in php:
$db = new Db();
$result = $db->select("select * from column");
$xml = new SimpleXMLElement('<channel/>');
for ($i = 0; $i < count($result); $i++) {
$title = $result[$i]title
$link = $result[$i]['link'];
$image = $result[$i]['image'];
$video = $result[$i]['video'];
$item = $xml->addChild('item');
$item->title = $title
$item->link = $link
$item->image = ?? ;
$item->video = ?? ;
}
Header('Content-type: text/xml');
print($xml->asXML());
just don't know how to set image and video because there tags are different like media:content and url of both image and video tags. please let me know
thanks
php xml
i facing few issue's i don't know how to resolve it
i want to write following rss feed using php and mysql:
<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
<channel>
<item>
<title>Here is the title</title>
<link>http://example.com</link>
<media:content medium="image" url="http://example.com/image.jpg"></media:content>
<media:content medium="video" url="http://example.com/video.mp4"></media:content>
</item>
</channel>
</rss>
here is my code in php:
$db = new Db();
$result = $db->select("select * from column");
$xml = new SimpleXMLElement('<channel/>');
for ($i = 0; $i < count($result); $i++) {
$title = $result[$i]title
$link = $result[$i]['link'];
$image = $result[$i]['image'];
$video = $result[$i]['video'];
$item = $xml->addChild('item');
$item->title = $title
$item->link = $link
$item->image = ?? ;
$item->video = ?? ;
}
Header('Content-type: text/xml');
print($xml->asXML());
just don't know how to set image and video because there tags are different like media:content and url of both image and video tags. please let me know
thanks
php xml
php xml
asked May 4 '16 at 22:12
MK DEVMK DEV
499
499
Namespace prefix, such asmedia
in your XML, need to be declared somewhere (something along this line:xmlns:media="foo"
). As posted the XML is not well-formed. Now, on which element do you want the ns prefix declaration to be?
– har07
May 4 '16 at 22:32
add a comment |
Namespace prefix, such asmedia
in your XML, need to be declared somewhere (something along this line:xmlns:media="foo"
). As posted the XML is not well-formed. Now, on which element do you want the ns prefix declaration to be?
– har07
May 4 '16 at 22:32
Namespace prefix, such as
media
in your XML, need to be declared somewhere (something along this line: xmlns:media="foo"
). As posted the XML is not well-formed. Now, on which element do you want the ns prefix declaration to be?– har07
May 4 '16 at 22:32
Namespace prefix, such as
media
in your XML, need to be declared somewhere (something along this line: xmlns:media="foo"
). As posted the XML is not well-formed. Now, on which element do you want the ns prefix declaration to be?– har07
May 4 '16 at 22:32
add a comment |
1 Answer
1
active
oldest
votes
You can not do that. Your XML is not valid. Prefixed tags must have a declared NameSpace URI, in your case 'http://search.yahoo.com/mrss/':
<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:media="http://search.yahoo.com/mrss/">
(...)
</rss>
You can use ->addChild
to create namespaced elements:
$xml = new SimpleXMLElement('<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:media="http://search.yahoo.com/mrss/">
<channel/>
</rss>');
(...)
$item = $xml->channel->addChild('item');
$item->title = $title;
$item->link = $link;
/* Add <media:image>: */
$node = $item->addChild( 'image', Null, 'http://search.yahoo.com/mrss/' );
$node->addAttribute( 'url', $image );
/* Add <media:video>: */
$node = $item->addChild( 'video', Null, 'http://search.yahoo.com/mrss/' );
$node->addAttribute( 'url', $video );
Result:
<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:media="http://search.yahoo.com/mrss/" version="2.0">
<channel>
<item>
<title>Your Title</title>
<link>http://www.somelink.it/</link>
<media:image url="http://www.image.com/"/>
<media:video url="http://www.video.com/"/>
</item>
</channel>
</rss>
you are genius thanks so much, please just let me know last thing my xml image medium in media content tag please can you just clear this out:<media:content medium="image" url="http://www.website.com/image.jpg"></media:content>
xml site given to me is link
– MK DEV
May 5 '16 at 9:02
1
I don't understand. Please clarify
– fusion3k
May 5 '16 at 9:03
because as you said media tag which is little bit different in myside must requirement is opening and closing tag of media content like that example<media:content medium="image" url="http://www.website.com/image.jpg"></media:content>
– MK DEV
May 5 '16 at 9:09
you example is working fine but it's didn't show the image in rss feed !! link the image is shown in rss !! so in your example rss images is not show i must have show the images in rss as well please help me out there requirement is must opening and close tag of media:content
– MK DEV
May 5 '16 at 9:11
1
In XML tags w/out node value are self-closed by<tag ... />
, not by<tag></tag>
. For<media:content>
follow above example:$item->addChild( 'content', ... )
, then->addAttribute( 'url', value )
. You can add more than one attribute. See here for availble attributes for media:content.
– fusion3k
May 5 '16 at 9:16
|
show 1 more comment
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f37038954%2fhow-to-geneate-mediacontent-xml-using-php%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
You can not do that. Your XML is not valid. Prefixed tags must have a declared NameSpace URI, in your case 'http://search.yahoo.com/mrss/':
<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:media="http://search.yahoo.com/mrss/">
(...)
</rss>
You can use ->addChild
to create namespaced elements:
$xml = new SimpleXMLElement('<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:media="http://search.yahoo.com/mrss/">
<channel/>
</rss>');
(...)
$item = $xml->channel->addChild('item');
$item->title = $title;
$item->link = $link;
/* Add <media:image>: */
$node = $item->addChild( 'image', Null, 'http://search.yahoo.com/mrss/' );
$node->addAttribute( 'url', $image );
/* Add <media:video>: */
$node = $item->addChild( 'video', Null, 'http://search.yahoo.com/mrss/' );
$node->addAttribute( 'url', $video );
Result:
<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:media="http://search.yahoo.com/mrss/" version="2.0">
<channel>
<item>
<title>Your Title</title>
<link>http://www.somelink.it/</link>
<media:image url="http://www.image.com/"/>
<media:video url="http://www.video.com/"/>
</item>
</channel>
</rss>
you are genius thanks so much, please just let me know last thing my xml image medium in media content tag please can you just clear this out:<media:content medium="image" url="http://www.website.com/image.jpg"></media:content>
xml site given to me is link
– MK DEV
May 5 '16 at 9:02
1
I don't understand. Please clarify
– fusion3k
May 5 '16 at 9:03
because as you said media tag which is little bit different in myside must requirement is opening and closing tag of media content like that example<media:content medium="image" url="http://www.website.com/image.jpg"></media:content>
– MK DEV
May 5 '16 at 9:09
you example is working fine but it's didn't show the image in rss feed !! link the image is shown in rss !! so in your example rss images is not show i must have show the images in rss as well please help me out there requirement is must opening and close tag of media:content
– MK DEV
May 5 '16 at 9:11
1
In XML tags w/out node value are self-closed by<tag ... />
, not by<tag></tag>
. For<media:content>
follow above example:$item->addChild( 'content', ... )
, then->addAttribute( 'url', value )
. You can add more than one attribute. See here for availble attributes for media:content.
– fusion3k
May 5 '16 at 9:16
|
show 1 more comment
You can not do that. Your XML is not valid. Prefixed tags must have a declared NameSpace URI, in your case 'http://search.yahoo.com/mrss/':
<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:media="http://search.yahoo.com/mrss/">
(...)
</rss>
You can use ->addChild
to create namespaced elements:
$xml = new SimpleXMLElement('<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:media="http://search.yahoo.com/mrss/">
<channel/>
</rss>');
(...)
$item = $xml->channel->addChild('item');
$item->title = $title;
$item->link = $link;
/* Add <media:image>: */
$node = $item->addChild( 'image', Null, 'http://search.yahoo.com/mrss/' );
$node->addAttribute( 'url', $image );
/* Add <media:video>: */
$node = $item->addChild( 'video', Null, 'http://search.yahoo.com/mrss/' );
$node->addAttribute( 'url', $video );
Result:
<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:media="http://search.yahoo.com/mrss/" version="2.0">
<channel>
<item>
<title>Your Title</title>
<link>http://www.somelink.it/</link>
<media:image url="http://www.image.com/"/>
<media:video url="http://www.video.com/"/>
</item>
</channel>
</rss>
you are genius thanks so much, please just let me know last thing my xml image medium in media content tag please can you just clear this out:<media:content medium="image" url="http://www.website.com/image.jpg"></media:content>
xml site given to me is link
– MK DEV
May 5 '16 at 9:02
1
I don't understand. Please clarify
– fusion3k
May 5 '16 at 9:03
because as you said media tag which is little bit different in myside must requirement is opening and closing tag of media content like that example<media:content medium="image" url="http://www.website.com/image.jpg"></media:content>
– MK DEV
May 5 '16 at 9:09
you example is working fine but it's didn't show the image in rss feed !! link the image is shown in rss !! so in your example rss images is not show i must have show the images in rss as well please help me out there requirement is must opening and close tag of media:content
– MK DEV
May 5 '16 at 9:11
1
In XML tags w/out node value are self-closed by<tag ... />
, not by<tag></tag>
. For<media:content>
follow above example:$item->addChild( 'content', ... )
, then->addAttribute( 'url', value )
. You can add more than one attribute. See here for availble attributes for media:content.
– fusion3k
May 5 '16 at 9:16
|
show 1 more comment
You can not do that. Your XML is not valid. Prefixed tags must have a declared NameSpace URI, in your case 'http://search.yahoo.com/mrss/':
<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:media="http://search.yahoo.com/mrss/">
(...)
</rss>
You can use ->addChild
to create namespaced elements:
$xml = new SimpleXMLElement('<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:media="http://search.yahoo.com/mrss/">
<channel/>
</rss>');
(...)
$item = $xml->channel->addChild('item');
$item->title = $title;
$item->link = $link;
/* Add <media:image>: */
$node = $item->addChild( 'image', Null, 'http://search.yahoo.com/mrss/' );
$node->addAttribute( 'url', $image );
/* Add <media:video>: */
$node = $item->addChild( 'video', Null, 'http://search.yahoo.com/mrss/' );
$node->addAttribute( 'url', $video );
Result:
<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:media="http://search.yahoo.com/mrss/" version="2.0">
<channel>
<item>
<title>Your Title</title>
<link>http://www.somelink.it/</link>
<media:image url="http://www.image.com/"/>
<media:video url="http://www.video.com/"/>
</item>
</channel>
</rss>
You can not do that. Your XML is not valid. Prefixed tags must have a declared NameSpace URI, in your case 'http://search.yahoo.com/mrss/':
<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:media="http://search.yahoo.com/mrss/">
(...)
</rss>
You can use ->addChild
to create namespaced elements:
$xml = new SimpleXMLElement('<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:media="http://search.yahoo.com/mrss/">
<channel/>
</rss>');
(...)
$item = $xml->channel->addChild('item');
$item->title = $title;
$item->link = $link;
/* Add <media:image>: */
$node = $item->addChild( 'image', Null, 'http://search.yahoo.com/mrss/' );
$node->addAttribute( 'url', $image );
/* Add <media:video>: */
$node = $item->addChild( 'video', Null, 'http://search.yahoo.com/mrss/' );
$node->addAttribute( 'url', $video );
Result:
<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:media="http://search.yahoo.com/mrss/" version="2.0">
<channel>
<item>
<title>Your Title</title>
<link>http://www.somelink.it/</link>
<media:image url="http://www.image.com/"/>
<media:video url="http://www.video.com/"/>
</item>
</channel>
</rss>
answered May 4 '16 at 22:44
fusion3kfusion3k
9,83441434
9,83441434
you are genius thanks so much, please just let me know last thing my xml image medium in media content tag please can you just clear this out:<media:content medium="image" url="http://www.website.com/image.jpg"></media:content>
xml site given to me is link
– MK DEV
May 5 '16 at 9:02
1
I don't understand. Please clarify
– fusion3k
May 5 '16 at 9:03
because as you said media tag which is little bit different in myside must requirement is opening and closing tag of media content like that example<media:content medium="image" url="http://www.website.com/image.jpg"></media:content>
– MK DEV
May 5 '16 at 9:09
you example is working fine but it's didn't show the image in rss feed !! link the image is shown in rss !! so in your example rss images is not show i must have show the images in rss as well please help me out there requirement is must opening and close tag of media:content
– MK DEV
May 5 '16 at 9:11
1
In XML tags w/out node value are self-closed by<tag ... />
, not by<tag></tag>
. For<media:content>
follow above example:$item->addChild( 'content', ... )
, then->addAttribute( 'url', value )
. You can add more than one attribute. See here for availble attributes for media:content.
– fusion3k
May 5 '16 at 9:16
|
show 1 more comment
you are genius thanks so much, please just let me know last thing my xml image medium in media content tag please can you just clear this out:<media:content medium="image" url="http://www.website.com/image.jpg"></media:content>
xml site given to me is link
– MK DEV
May 5 '16 at 9:02
1
I don't understand. Please clarify
– fusion3k
May 5 '16 at 9:03
because as you said media tag which is little bit different in myside must requirement is opening and closing tag of media content like that example<media:content medium="image" url="http://www.website.com/image.jpg"></media:content>
– MK DEV
May 5 '16 at 9:09
you example is working fine but it's didn't show the image in rss feed !! link the image is shown in rss !! so in your example rss images is not show i must have show the images in rss as well please help me out there requirement is must opening and close tag of media:content
– MK DEV
May 5 '16 at 9:11
1
In XML tags w/out node value are self-closed by<tag ... />
, not by<tag></tag>
. For<media:content>
follow above example:$item->addChild( 'content', ... )
, then->addAttribute( 'url', value )
. You can add more than one attribute. See here for availble attributes for media:content.
– fusion3k
May 5 '16 at 9:16
you are genius thanks so much, please just let me know last thing my xml image medium in media content tag please can you just clear this out:
<media:content medium="image" url="http://www.website.com/image.jpg"></media:content>
xml site given to me is link– MK DEV
May 5 '16 at 9:02
you are genius thanks so much, please just let me know last thing my xml image medium in media content tag please can you just clear this out:
<media:content medium="image" url="http://www.website.com/image.jpg"></media:content>
xml site given to me is link– MK DEV
May 5 '16 at 9:02
1
1
I don't understand. Please clarify
– fusion3k
May 5 '16 at 9:03
I don't understand. Please clarify
– fusion3k
May 5 '16 at 9:03
because as you said media tag which is little bit different in myside must requirement is opening and closing tag of media content like that example
<media:content medium="image" url="http://www.website.com/image.jpg"></media:content>
– MK DEV
May 5 '16 at 9:09
because as you said media tag which is little bit different in myside must requirement is opening and closing tag of media content like that example
<media:content medium="image" url="http://www.website.com/image.jpg"></media:content>
– MK DEV
May 5 '16 at 9:09
you example is working fine but it's didn't show the image in rss feed !! link the image is shown in rss !! so in your example rss images is not show i must have show the images in rss as well please help me out there requirement is must opening and close tag of media:content
– MK DEV
May 5 '16 at 9:11
you example is working fine but it's didn't show the image in rss feed !! link the image is shown in rss !! so in your example rss images is not show i must have show the images in rss as well please help me out there requirement is must opening and close tag of media:content
– MK DEV
May 5 '16 at 9:11
1
1
In XML tags w/out node value are self-closed by
<tag ... />
, not by <tag></tag>
. For <media:content>
follow above example: $item->addChild( 'content', ... )
, then ->addAttribute( 'url', value )
. You can add more than one attribute. See here for availble attributes for media:content.– fusion3k
May 5 '16 at 9:16
In XML tags w/out node value are self-closed by
<tag ... />
, not by <tag></tag>
. For <media:content>
follow above example: $item->addChild( 'content', ... )
, then ->addAttribute( 'url', value )
. You can add more than one attribute. See here for availble attributes for media:content.– fusion3k
May 5 '16 at 9:16
|
show 1 more comment
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f37038954%2fhow-to-geneate-mediacontent-xml-using-php%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Namespace prefix, such as
media
in your XML, need to be declared somewhere (something along this line:xmlns:media="foo"
). As posted the XML is not well-formed. Now, on which element do you want the ns prefix declaration to be?– har07
May 4 '16 at 22:32