Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/283.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php,从非标准xml文档中提取数据_Php_Xml - Fatal编程技术网

php,从非标准xml文档中提取数据

php,从非标准xml文档中提取数据,php,xml,Php,Xml,我需要一些xml内容来提取信息并将其存储到数据库中 <xml file="136000000-136100000"> <Id>136000000</Id> <Name>Sem Serxy</Na me> <Email>ssunsdadi2sk@ya.ru</Email> <DateRegistration>10/13/2010 1:49:30 AM</DateRegistration>

我需要一些xml内容来提取信息并将其存储到数据库中

<xml file="136000000-136100000">
<Id>136000000</Id>
<Name>Sem  Serxy</Na me>
<Email>ssunsdadi2sk@ya.ru</Email>
<DateRegistration>10/13/2010 1:49:30 AM</DateRegistration>
</xml>
<xml file="136000000-136100000">
<Id>136000001</Id>
<Name>God Deckor</Name>
<Email>deckor22s2001@yahoo.com</Email>

136000000
扫描电镜扫描
ssunsdadi2sk@ya.ru
2010年10月13日凌晨1:49:30
136000001
上帝德科
deckor22s2001@yahoo.com
如果我尝试简单的xml加载,它将无法工作,因为文档似乎不是有效的xml。
我可以使用regex来提取preg_match_all的信息,但我觉得这不是正确的方法,因为数据结构已经很好了。还有别的方法吗

尝试将其包装到根元素中。在我看来,它在其他方面是有效的

类似这样的事情:

$xmlData = '<root>' . $xmlData . '</root>';
$xmlData=''$xmlData.';
其中,
$xmlData
是一个包含您拥有的数据的字符串

通过这种方式,您应该能够使用SimpleXML或PHP中的其他XML库来加载它。

$XML=SimpleXML\u load\u string(“”+$record->rows['ColumnName']+“”);
$xml = simplexml_load_string('<root>' + $record->rows['ColumnName'] + '</root>');
$xmlelmId = $xml->xpath('/root/Id');
echo $xmlelmId[0];
$xmlelmId=$xml->xpath('/root/Id'); echo$xmlelmId[0];
它仍然显示警告:simplexml\u load\u file()[function.simplexml加载文件]:136000000-136100000.xml:7:解析器错误:第3行的C:\wamp\www\index.php中的文档末尾有额外内容警告:simplexml\u加载文件()[function.simplexml加载文件]:第3行的C:\wamp\www\index.php中警告:simplexml\u加载文件()[function.simplexml加载文件]:^在C:\wamp\www\index.php第3行中,除了@JaniHartikainen提到的内容之外,还可以在开头添加
,然后将其包装在父节点中,然后进行解析。(这是假设它至少遵循
..
模式,并且不遗漏结束标记(就像您的代码片段那样)实际上,被截取的代码是以完全相同的形式从xml文档中提取出来的,因此它必须注意,如果它无效,它实际上不是xml。你能告诉我$record是什么吗?对不起。我正在粘贴我的框架代码。它应该是:while($row=mysql\u fetch\u assoc($result)){$xml=simplexml_load_string(''+$row['XmlDataColumnName']+'');$xmlelmId=$xml->xpath('/root/Id');echo$xmlelmId[0];}