如何使用php DOM在<![CDATA [values]]>中获取值.这是我的xml中的一些代码.
<Destinations>
<Destination>
<![CDATA[Aghia Paraskevi, Skiatos, Greece]]]]>><![CDATA[
<CountryCode>GR</CountryCode>
</Destination>
<Destination>
<![CDATA[Amettla, Spain]]]]>><![CDATA[
<CountryCode>ES</CountryCode>
</Destination>
<Destination>
<![CDATA[Amoliani, Greece]]]]>><![CDATA[
<CountryCode>GR</CountryCode>
</Destination>
<Destination>
<![CDATA[Boblingen, Germany]]]]>><![CDATA[
<CountryCode>DE</CountryCode>
</Destination>
</Destinations>
Run Code Online (Sandbox Code Playgroud)
Nic*_*ole 31
使用PHP DOM非常简单,与Javascript的DOM非常相似.
以下是重要的课程:
有一些主要的方法和属性:
DOMDocument->load()- 创建新文件后DOMDocument,在该对象上使用此方法从文件加载.DOMDocument->getElementsByTagName() - 此方法返回具有给定标记名称的文档中所有元素的节点列表.然后你可以foreach在这个列表上迭代().DOMNode->childNodes - 节点的所有子节点的节点列表.(请记住,CDATA部分是一个节点!)DOMNode->nodeType- 获取节点的类型.CDATA节点的类型为XML_CDATA_SECTION_NODE,它是值为4的常量.DOMNode->textContent - 获取任何节点的文本内容.注意:您的CDATA部分格式错误.我不知道为什么]]第一个中有一个额外的,或者在行尾有一个未闭合的CDATA部分,但我认为它应该只是:
<![CDATA[Aghia Paraskevi, Skiatos, Greece]]>
Run Code Online (Sandbox Code Playgroud)
把这一切放在一起我们:
Destination按标签名称获取所有元素并迭代列表Destination元素的所有子节点XML_CDATA_SECTION_NODEecho在textContent那个节点.码:
$doc = new DOMDocument();
$doc->load('test.xml');
$destinations = $doc->getElementsByTagName("Destination");
foreach ($destinations as $destination) {
foreach($destination->childNodes as $child) {
if ($child->nodeType == XML_CDATA_SECTION_NODE) {
echo $child->textContent . "<br/>";
}
}
}
Run Code Online (Sandbox Code Playgroud)
结果:
Aghia Paraskevi,Skiatos,希腊
Amettla,西班牙 Amoliani,
希腊
Boblingen,德国
小智 10
用这个:
$parseFile = simplexml_load_file($myXML,'SimpleXMLElement', LIBXML_NOCDATA)
Run Code Online (Sandbox Code Playgroud)
和下一个:
foreach ($parseFile->yourNode as $node ){
etc...
}
Run Code Online (Sandbox Code Playgroud)
最好和简单的方法
$xml = simplexml_load_string($xmlData, 'SimpleXMLElement', LIBXML_NOCDATA);
$xmlJson = json_encode($xml);
$xmlArr = json_decode($xmlJson, 1); // Returns associative array
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
47271 次 |
| 最近记录: |