gpt4 book ai didi

php - 从 XMLReader 打开的 simplexml 中的 CData

转载 作者:可可西里 更新时间:2023-11-01 00:49:48 26 4
gpt4 key购买 nike

我有一堆 XML 文件,我正在使用 XMLReader 将其加载到我的脚本中,创建 DOM 对象,然后将其转换为 Simplexml。

问题是其中一个 XML 文件使用 SIMPLEXML 忽略的 CDATA,通常使用 SIMPLEXML_LOAD_FILE 我会添加 LIBXML_NOCDATA 参数,但是因为我使用的是 simplexml_import_dom,所以我不知道如何在下面的 sceanrio 中忽略 CDATA。

有什么想法吗?

非常感谢布雷特

$file = 'test.xml';
$reader = new XMLReader();
$reader->open($file);
while ($reader->read())
{
// are we in a product?
if ($reader->nodeType == XMLReader::ELEMENT &&
strtolower($reader->localName) == 'product')

{
if (!$node = $reader->expand()) {
//do nothing
}
else {
// expand the node into a DOMNode
// Convert to SimpleXML via DOM, messy but SimpleXML is soo much nicer.
$dom = new DomDocument();
$dom->appendChild($dom->importNode($node, true));
$products = simplexml_import_dom($dom);

// do whatever we want to do with the product data

}

最佳答案

你可以尝试这样的事情:

<?php
$str = $dom->saveXML();
$product = simplexml_load_string($str, 'SimpleXMLElement', LIBXML_NOCDATA | LIBXML_NOBLANKS);

关于php - 从 XMLReader 打开的 simplexml 中的 CData,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10057352/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com