もう1つのCDATAがコンテンツの質問を返すようになりました。私は多くの答えを見たことがありますが、私はそれらすべてを試しましたが、私はまだ内容だけを取得します。より詳細にはSimpleXMLはCDATA要素のコンテンツを返信し続けます
:
私は(内部の多くのNewsItemを含む)xmlファイルを持っている:私はbody.contentのコンテンツを取得しようとしています
<NewsML>
<NewsItem>
<NewsComponent>
<ContentItem>
<DataContent>
<body>
<body.content>
<![CDATA[<p>This is what I am trying to retrieve</p>]]>
</body.content>
</body>
</DataContent>
</ContentItem>
</NewsComponent>
</NewsItem>
。ここで
は私のコードです:
$xml = simplexml_load_file('path/to/my/xml.xml',null,LIBXML_NOCDATA);
if(count($xml->children()) > 0){
foreach($xml->children() as $element){
$description = (string)$element->NewsComponent->ContentItem->DataContent->body->body.content;
echo $description;
}
}
echo '<pre>';
print_r($xml);
echo '</pre>';
マイエコーリターン: コンテンツ
我々がここで見ることができるように私は、私のxmlのますprint_rの内容を見ていますにもかかわらず:
SimpleXMLElement Object
(
[NewsItem] => Array
(
[0] => SimpleXMLElement Object
(
[NewsComponent] => SimpleXMLElement Object
(
[ContentItem] => Array
(
[0] => SimpleXMLElement Object
(
[DataContent] => SimpleXMLElement Object
(
[body] => SimpleXMLElement Object
(
[body.content] => This is what I am trying to retieve
)
)
)
)
)
)
要素で(文字列)を使用したかどうかを試しましたが、
また、私はあなたが文字列「内容」で
$element->NewsComponent->ContentItem->DataContent->body->body
存在しない要素を連結しているので、あなたの例では、「コンテンツ」を返すと思います
$xml = simplexml_load_file('path/to/my/xml.xml',null,LIBXML_NOCDATA);
vs
$xml = simplexml_load_file('path/to/my/xml.xml',"SimpleXMLElement",LIBXML_NOCDATA);
vs
$xml = simplexml_load_file('path/to/my/xml.xml');