本文目錄一覽:
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;
}
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/206151.html