Adding support for <text:s> inside <text:span> (fixes #666)
This commit is contained in:
parent
6c4086cf97
commit
24f81cc219
@ -96,21 +96,7 @@ class CellValueFormatter
|
|||||||
$pNodes = $node->getElementsByTagName(self::XML_NODE_P);
|
$pNodes = $node->getElementsByTagName(self::XML_NODE_P);
|
||||||
|
|
||||||
foreach ($pNodes as $pNode) {
|
foreach ($pNodes as $pNode) {
|
||||||
$currentPValue = '';
|
$pNodeValues[] = $this->extractTextFromNode($pNode);
|
||||||
|
|
||||||
foreach ($pNode->childNodes as $childNode) {
|
|
||||||
if ($childNode instanceof \DOMText) {
|
|
||||||
$currentPValue .= $childNode->nodeValue;
|
|
||||||
} elseif ($childNode->nodeName === self::XML_NODE_S) {
|
|
||||||
$spaceAttribute = $childNode->getAttribute(self::XML_ATTRIBUTE_C);
|
|
||||||
$numSpaces = (!empty($spaceAttribute)) ? (int) $spaceAttribute : 1;
|
|
||||||
$currentPValue .= str_repeat(' ', $numSpaces);
|
|
||||||
} elseif ($childNode->nodeName === self::XML_NODE_A || $childNode->nodeName === self::XML_NODE_SPAN) {
|
|
||||||
$currentPValue .= $childNode->nodeValue;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
$pNodeValues[] = $currentPValue;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$escapedCellValue = implode("\n", $pNodeValues);
|
$escapedCellValue = implode("\n", $pNodeValues);
|
||||||
@ -119,6 +105,29 @@ class CellValueFormatter
|
|||||||
return $cellValue;
|
return $cellValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param \DOMNode $pNode
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
protected function extractTextFromNode($pNode)
|
||||||
|
{
|
||||||
|
$currentPValue = '';
|
||||||
|
|
||||||
|
foreach ($pNode->childNodes as $childNode) {
|
||||||
|
if ($childNode instanceof \DOMText) {
|
||||||
|
$currentPValue .= $childNode->nodeValue;
|
||||||
|
} elseif ($childNode->nodeName === self::XML_NODE_S) {
|
||||||
|
$spaceAttribute = $childNode->getAttribute(self::XML_ATTRIBUTE_C);
|
||||||
|
$numSpaces = (!empty($spaceAttribute)) ? (int) $spaceAttribute : 1;
|
||||||
|
$currentPValue .= str_repeat(' ', $numSpaces);
|
||||||
|
} elseif ($childNode->nodeName === self::XML_NODE_A || $childNode->nodeName === self::XML_NODE_SPAN) {
|
||||||
|
$currentPValue .= $this->extractTextFromNode($childNode);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return $currentPValue;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns the cell Numeric value from the given node.
|
* Returns the cell Numeric value from the given node.
|
||||||
*
|
*
|
||||||
|
Loading…
x
Reference in New Issue
Block a user