参考:http://www.phpe.net/manual/function.xml-parse-into-struct.php
解决方案 »
- 请教mysql问题: mysql_fetch_array():
- 得到的checkbox的value不知道从哪儿出来的/?
- 这个问题很有意思
- preg_match('/^[a-z0-9_-]+$/ui', $table);谁能解释一下这正则表达式最后一个定界符后面的ui是什么意思?
- php乱码问题
- str_replace 在UTF8编码下替换不了 【】等符号
- PHP组件PHP_iconv.dll的配置问题
- 在linux系统中xmldom.load()另外一个网站的xml文件load不到,文件属性应该如何设置?
- php网站后台建设(验证 验证码)有错误,求帮忙修改
- 分站系统怎么写
- /(\d+)|(\w+)/,或的匹配结果会存储为不同数组键值,能否统一?
- Smarty 中的 capture函数
class XMLAssistor
{
private $struct_str = NULL; private function loop($node)
{
// iterate all attributes of the current node
$attrList = $node->attributes; foreach ($attrList as $childNode)
{
echo $childNode->nodeName . "[" . $childNode->nodeValue . "]<br>\n";
} // iterate all below elements
$nodeList = $node->childNodes; foreach ($nodeList as $childNode)
{
if ($childNode->nodeType == XML_ELEMENT_NODE)
{
echo $childNode->nodeName . "[" . $this->getElementTextValue($childNode) . "]<br>\n";
$this->loop($childNode);
}
}
} private function getElementTextValue($node)
{
$nodeList = $node->childNodes; foreach ($nodeList as $childNode)
{
if ($childNode->nodeType == XML_TEXT_NODE)
{
return $childNode->nodeValue;
}
} return "";
} private function checkForDom($dom)
{
if (!($dom instanceof DomDocument))
{
die("Parameter \"dom\" is not an instance of DomDocument tyep.");
}
} /**
* @desc show all elements of the given dom object
*/
public function showStruct($dom)
{
$root = $dom->documentElement;
$this->loop($root);
} /**
* @desc return a list of nodes which match the given xpath expression.
*/
public function selectNodes($xpathExp, $dom)
{
$xpath = new DOMXPath($dom);
$nodeList = $xpath->query($xpathExp); if ($nodeList->length == 1)
{
die("The given xpath expression is not valid");
} return $nodeList;
} /**
* @desc return a single node witch matches the given xpath expression.
*/
public function selectSingleNode($xpathExp, $dom)
{
$xpath = new DOMXPath($dom);
$nodeList = $xpath->query($xpathExp); if ($nodeList->length != 1)
{
die("The given xpath expression is not valid");
} return $nodeList->item(0);
}
}//Creates XML string and XML document using the DOM
$dom = new DomDocument('1.0');
$dom->preserveWhiteSpace = false;
$dom->load("test.xml");
$xmlAssistor = new XMLAssistor();
$xmlAssistor->showStruct($dom);
// echo $xmlAssistor->selectSingleNode("//plot", $dom)->nodeName;?>
KIKAN[2]
RANK[3]
LAT[34.582221]
LNG[136.111823]
KIKAN[1]
NO[2]
ROUTE[1号]
TYPE[1]
NO[1]
SUBNO[1]
CONTENT[車線規制]
RANK[3]
CAUSE[踏掛版補修工事]
CD[9]
SPLACE[水口町水口 ]
EPLACE[ ]
SDATE[2007/09/07 09:00]
CD[200709070930]
EDATE[2007/12/31 17:00]
CD[200712311700]
KISEI[]
KIKAN[3]
RANK[1]
LAT[34.525175]
LNG[135.455737]
KIKAN[京都国道]
NO[3]
ROUTE[24号]
TYPE[1]
NO[24]
SUBNO[1]
CONTENT[通行止]
RANK[1]
CAUSE[作業]
CD[11]
SPLACE[久御山町佐古 ]
EPLACE[安田交差点 ]
SDATE[2007/09/01 09:00]
CD[200709010900]
EDATE[]
CD[999999999999]
KISEI[]
KIKAN[5]
RANK[1]
LAT[34.3905]
LNG[134.584]
KIKAN[兵庫国道]
NO[5]
ROUTE[2号]
TYPE[1]
NO[2]
SUBNO[1]
CONTENT[通行止]
RANK[1]
CAUSE[災害]
CD[5]
SPLACE[相坂稲荷町 ]
EPLACE[杭瀬本町1丁目]
SDATE[2007/04/12 11:30]
CD[200704121130]
EDATE[2007/10/21 18:25]
CD[200710211825]
(
[LIST] => Array
(
[0] => Array
(
[_columnindex] => 0
[KISEI] => Array
(
[0] => Array
(
[_columnindex] => 0
[_attributes] => Array
(
[KIKAN] => 2
[RANK] => 3
[LAT] => 34.582221
[LNG] => 136.111823
) [KIKAN] => Array
(
[0] => Array
(
[_columnindex] => 0
[_attributes] => Array
(
[NO] => 2
) [_innertext] => 1
) ) [ROUTE] => Array
(
[0] => Array
(
[_columnindex] => 0
[_attributes] => Array
(
[TYPE] => 1
[NO] => 1
[SUBNO] => 1
) [_innertext] => 1号
) ) [CONTENT] => Array
(
[0] => Array
(
[_columnindex] => 0
[_attributes] => Array
(
[RANK] => 3
) [_innertext] => 車線規制
) )...........