本文目录一览:
PHP 读取和编写 XML
什么是
XML?
XML
是一种数据存储格式。它没有定义保存什么数据,也没有定义数据的格式。XML
只是定义了标记和这些标记的属性。格式良好的
XML
标记看起来像这样:
复制代码
代码如下:
nameJack
Herrington/name
DOM读取
XML
复制代码
代码如下:
?php
$doc
=
new
DOMDocument();
$doc-load(
'books.xml'
);
$books
=
$doc-getElementsByTagName(
"book"
);
foreach(
$books
as
$book
)
{
$authors
=
$book-getElementsByTagName(
"author"
);
$author
=
$authors-item(0)-nodeValue;
$publishers
=
$book-getElementsByTagName(
"publisher"
);
$publisher
=
$publishers-item(0)-nodeValue;
$titles
=
$book-getElementsByTagName(
"title"
);
$title
=
$titles-item(0)-nodeValue;
echo
"$title
-
$author
-
$publisher\n";
}
?
用
DOM
编写
XML
复制代码
代码如下:
?php
$books
=
array();
$books
[]
=
array(
'title'
=
'PHP
Hacks',
'author'
=
'Jack
Herrington',
);
$doc
=
new
DOMDocument();
//创建dom对象
$doc-formatOutput
=
true;
$r
=
$doc-createElement(
"books"
);//创建标签
$doc-appendChild(
$r
);
//将$r标签,加入到xml格式中。
foreach(
$books
as
$book
)
{
$b
=
$doc-createElement(
"book"
);
//创建标签
$author
=
$doc-createElement(
"author"
);
$author-appendChild($doc-createTextNode(
$book['author']
));
//给标签添加内容
$b-appendChild(
$author
);
//将子标签
加入父标签
$r-appendChild(
$b
);
//加入父标签中!
}
echo
$doc-saveXML();
?
以上就是这2段读取和编写XML的DOM代码了,小伙伴们了解了没,有什么疑问可以给我留言
php解析xml字符串,该怎么处理
编写示例代码如下,经运行测试通过:
?php
$xmlStr = XML
?xml version='1.0' encoding='UTF-8'?
ExportData
Body
Content
Id1/Id
NameTest01/Name
Point40/Point
/Content
Content
Id2/Id
NameTest02/Name
Point80/Point
/Content
/Body
/ExportData
XML;
$xml = new SimpleXMLElement($xmlStr);
foreach($xml-Body-Content as $item){
echo 'ID: '.$item-Id."br/\n";
echo 'Name: '.$item-Name."br/\n";
echo 'Point: '.$item-Point."br/br/\n";
}
?
PHP如何处理XML并保存到MYSQL
meta http-equiv="Content-Type" content="text/html; charset=utf-8"
?php
//脚本永不结束
set_time_limit(0);
//数据库连接
mysql_connect('host', 'user', 'password');
mysql_select_db('database');
while(true){
//这里不知道你的xml来源,改为你自己的来源,读入xml变量
$xml = 'xmlrow expect="201412345" opencode="1,2,3,4,5" opentime="2014-11-11 11:11:11"//xml';
//解析xml内容
$obj = simplexml_load_string($xml, 'SimpleXMLElement', LIBXML_NOCDATA);
$expect = $obj-row['expect'];
$opencode = $obj-row['opencode'];
$opentime = $obj-row['opentime'];
$sql='INSERT INTO table VALUES (\''.$expect.'\',\''.$opencode.'\',\''.$opentime.'\')';
mysql_query($sql);
//休息60秒
sleep(60);
}
由于php没有线程概念,这个页面要运行的话,必须维持一个在浏览器打开状态
这里的代码只是简单的示例,具体的逻辑你可以根据需求自己完善
php解析xml
.asmx的全程是ASMX Active Server Methods,.asmx 是WEB服务文件,asmx.cs里有相关代码
属于B/S形式,用SOAP方式HTTP访问,用XML返回。
以下是 php语言 利用 soap调用.Net的WebService asmx文件
?php
//php.ini中打开下面3个dll
//extension = php_soap.dll
//extension = php_curl.dll
//extension = php_openssl.dll
header("content-type:text/html;charset=utf-8");
$client = new SoapClient(" ");
//本行测试不可行 $client = new SoapClient(" ;psw=123");
//参数这样传递 先包装一下
$param = array('username'='test3','psw'='123');
//调用必须用__soapCall
$p = $client-__soapCall('ChkWele',array('parameters' = $param));
print_r($p-ChkWeleResult); //这里先输出一下变量$p,看看是什么类型。
?
.NET部分 webservice要注意的地方
/*
* system.web在这个节点中加入如下内容
webServices
protocols
add name="HttpSoap"/
add name="HttpPost"/
add name="HttpGet"/
add name="Documentation"/
/protocols
/webServices
*/
[WebMethod(Description = "This......", EnableSession = false)]
public string ChkWele(string username, string psw)
{
string ret = "";
return ret;
}