php输出xml内容

php输出xml内容,第1张

PHP生成XML的方法很多,这里演示最基本,最简单的字符串构造法。就是使用字符串构造或者拼接成xml数据格式,然后输出或者生成xml文件。

<php
    $data = array(
        array(
        'title'   => 'baidu',
        'country' => 'china',
        'name'    => '百度',
        ),
        array(
        'title'   => 'google',
        'country' => 'usa',
        'name'    => '谷歌',
        )
    );
    
     //构造xml数据格式
    $xml = "<xml version=\"10\" encoding=\"utf-8\">\n";
    $xml = "<data>\n";
    foreach ($data as $itm) {
        //循环构造xml单项
        $item = "<item>\n";
        $item = "<title>"  $itm['title']  "</title>\n";
        $item = "<country>"  $itm['country']  "</country>\n";
        $item = " <name>"  $itm['name']  "</name>\n";
        $item = "</item>\n";
        $xml =$item;
    }
     
    $xml = "</data>\n";
     
    //输出xml数据
    echo $xml;
 
>

生成的数据格式如下:

第一种方法:
复制代码
代码如下:
<php
header("Content-type:
text/xml");
echo
"<xml
version=/"10/"
encoding=/"UTF-8/">";
echo
"<users>";
echo
"<user>";

echo
"<name>";

echo
"小小菜鸟";

echo
"</name>";

echo
"<age>";

echo
"24";

echo
"</age>";

echo
"<sex>";

echo
"男";

echo
"</sex>";
echo
"</user>";
echo
"<user>";

echo
"<name>";

echo
"艳艳";

echo
"</name>";

echo
"<age>";

echo
"23";

echo
"</age>";

echo
"<sex>";

echo
"女";

echo
"</sex>";
echo
"</user>";
echo
"</users>";
>
第二种方法:
复制代码
代码如下:
<php
header("Content-type:
text/xml");
echo
"<xml
version=/"10/"
encoding=/"UTF-8/">";
echo
"<users><user><name>小小菜鸟</name><age>24</age><sex>男</sex></user><user><name>艳艳</name><age>23</age><sex>女</sex></user></users>";
>
第三种方法:
复制代码
代码如下:
<php
/
用PHP的DOM控件来创建XML输出
设置输出内容的类型为xml
/
header('Content-Type:
text/xml;');
//创建新的xml文件
$dom
=
new
DOMDocument('10',
'utf-8');
//建立<response>元素
$response
=
$dom->createElement('response');
$dom->appendChild($response);
//建立<books>元素并将其作为<response>的子元素
$books
=
$dom->createElement('books');
$response->appendChild($books);
//为book创建标题
$title
=
$dom->createElement('title');
$titleText
=
$dom->createTextNode('PHP与AJAX');
$title->appendChild($titleText);
//为book创建isbn元素
$isbn
=
$dom->createElement('isbn');
$isbnText
=
$dom->createTextNode('1-21258986');
$isbn->appendChild($isbnText);
//创建book元素
$book
=
$dom->createElement('book');
$book->appendChild($title);
$book->appendChild($isbn);
//将<book>作为<books>子元素
$books->appendChild($book);
//在一字符串变量中建立XML结构
$xmlString
=
$dom->saveXML();
//输出XML字符串
echo
$xmlString;
>

public function arrayToXml($arr){
$xml = "<xml>";
foreach ($arr as $key=>$val){
if(is_array($val)){
$xml="<"$key">"arrayToXml($val)"</"$key">";
}else{
if (is_numeric($val)){
$xml="<"$key">"$val"</"$key">";
}else{
$xml="<"$key"><![CDATA["$val"]]></"$key">";
}
}
}
$xml="</xml>";
return $xml;
}

echo不就出来了?XML和PHP也有相互转换的函数
xml_parser_create — 建立一个 XML 解析器
xml_parser_free — 释放指定的 XML 解析器

<php
// 你要读取近来的xml 赋给xmlstr
$xmlStr ='
<root>
<members>
<member>
<name>aaa</name>
</member>
<member>
<name>bbb</name>
</member>
<member>
<name>ccc</name>
</member>
<member>
<name>ddd</name>
</member>
</members>
<members>
<member>
<name>11</name>
</member>
<member>
<name>22</name>
</member>
<member>
<name>33</name>
</member>
<member>
<name>44</name>
</member>
</members>
</root>
';
$dom = new DOMDocument('10');
$dom ->loadXML($xmlStr);
$xml = simplexml_import_dom($dom);
echo $xml ->members[0]->member[0]->name; // aaa
echo $xml ->members[1]->member[0]->name; // 111
echo "<p>";
/
循环列出 第一个 members 的 name;
/
foreach($xml ->members[0] as $v)
{
echo $v->name"<br>";
}
>

返回的数据是php去决定的,xml和json都是可以的,
你可以和使用接口的一方定好规则,到底要xml格式数据还是json格式的数据。
当然你也可以更灵活点,当别人请求你的接口的时候,带上参数。你在接口里面接受,如果参数是1,你就返回json,如果是2,你就返回xml这样做显得更灵活。这都是在乎你在接口中怎么去写的。

如果你使用curl获取的xmldata\x0d\simplexml_load_string()函数把XML字符串载入对象中。\x0d\$xml=simplexml_load_string($xmlStr);\x0d\$json=json_encode($xml);\x0d\如果是直接获取URL数据的话\x0d\$xml=simplexml_load_file($data);\x0d\$json=json_encode($xml);


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/13367487.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-22
下一篇 2023-07-22

发表评论

登录后才能评论

评论列表(0条)

保存