相关疑难解决方法(0)

在SimpleXML for PHP中删除具有特定属性的子项

我有几个具有不同属性的相同元素,我正在使用SimpleXML访问:

<data>
    <seg id="A1"/>
    <seg id="A5"/>
    <seg id="A12"/>
    <seg id="A29"/>
    <seg id="A30"/>
</data>
Run Code Online (Sandbox Code Playgroud)

我需要删除id为"A12" 的特定seg元素,我该怎么做?我已经尝试循环遍历seg元素并取消设置特定元素,但这不起作用,元素仍然存在.

foreach($doc->seg as $seg)
{
    if($seg['id'] == 'A12')
    {
        unset($seg);
    }
}
Run Code Online (Sandbox Code Playgroud)

php xml dom simplexml

48
推荐指数
5
解决办法
10万
查看次数

无法使用PHP Simplexml添加带有命名空间前缀的属性

尝试编辑使用Excels XML-Namespaces的XML文档:

<Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet" 
          xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet">
Run Code Online (Sandbox Code Playgroud)

我需要得到这个结果(需要ss:前缀befire 类型):

<Cell ...><Data ss:Type="String">value</Data></Cell>
Run Code Online (Sandbox Code Playgroud)

我已经查看了无法使用PHP SimpleXML添加命名空间的问题,但这种方法在这里没有帮助.换句话说,按照那里的说明运行它

$data = $cells[$i]->addChild('Data','value'); 
$data->addAttribute("ss:Type","String","urn:schemas-microsoft-com:office:spreadsheet");
Run Code Online (Sandbox Code Playgroud)

给我

<Cell ...><Data Type="String">value</Data></Cell>
Run Code Online (Sandbox Code Playgroud)

没有ss:前缀.如果我删除urn:前缀,那么我得到了这个

<Cell ...><Data xmlns:ss="schemas-microsoft-com:office:spreadsheet" ss:Type="String">value</Data></Cell>
Run Code Online (Sandbox Code Playgroud)

在任何一种情况下,当我用Excel打开文档时,数据都是不可见的.随着瓮:SS:缺失和不瓮:定义成为部分 在Excel中无效的元素.

php xml simplexml xml-namespaces

4
推荐指数
1
解决办法
2822
查看次数

标签 统计

php ×2

simplexml ×2

xml ×2

dom ×1

xml-namespaces ×1