Trying to edit an XML document that uses Excels XML-Namespaces:
<Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet"
xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet">
I need to get to this result (need the ss: prefix befire Type):
<Cell ...><Data ss:Type="String">value</Data></Cell>
I've looked over the question Unable add namespace with PHPs SimpleXML but this method is not helping here. In other words, running this as outlined there
$data = $cells[$i]->addChild('Data','value');
$data->addAttribute("ss:Type","String","urn:schemas-microsoft-com:office:spreadsheet");
gives me
<Cell ...><Data Type="String">value</Data></Cell>
without the ss: prefix. And if I remove the urn: prefix, then I'm getting this
<Cell ...><Data xmlns:ss="schemas-microsoft-com:office:spreadsheet" ss:Type="String">value</Data></Cell>
In either case, when I open the document with Excel, the data is invisible. With urn: the ss: is missing and without urn: the definition becomes part of the element which is not working in Excel.
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…