This commit is contained in:
Elena.Subbotina
2023-04-17 16:22:56 +03:00
parent 9b4aa190c2
commit 28e80a705c
2 changed files with 17 additions and 12 deletions

View File

@ -78,11 +78,13 @@ namespace OOX
std::wstring CRelationShip::toXML() const
{
XmlUtils::CAttribute oAttr;
oAttr.Write(L"Id", m_rId.ToString() );
oAttr.Write(L"Type", m_sType );
oAttr.Write(L"Id", m_rId.ToString() );
oAttr.Write(L"Type", m_sType );
std::wstring sTarget = m_oTarget.m_strFilename;
XmlUtils::replace_all(sTarget,L"\\",L"/");
if (false == IsExternal())
XmlUtils::replace_all(sTarget,L"\\",L"/");
sTarget = XmlUtils::EncodeXmlString(sTarget);
oAttr.Write(L"Target", sTarget);
if(m_sMode.IsInit())
@ -97,12 +99,11 @@ namespace OOX
void CRelationShip::ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
{
std::wstring sTempTarget;
// Читаем атрибуты
WritingElement_ReadAttributes_Start( oReader )
WritingElement_ReadAttributes_Read_if ( oReader,L"Id", m_rId )
WritingElement_ReadAttributes_Read_else_if( oReader,L"Target", sTempTarget )
WritingElement_ReadAttributes_Read_else_if( oReader,L"Type", m_sType )
WritingElement_ReadAttributes_Read_else_if( oReader,L"TargetMode", m_sMode )
WritingElement_ReadAttributes_Read_if ( oReader,L"Id", m_rId )
WritingElement_ReadAttributes_Read_else_if( oReader,L"Target", sTempTarget )
WritingElement_ReadAttributes_Read_else_if( oReader,L"Type", m_sType )
WritingElement_ReadAttributes_Read_else_if( oReader,L"TargetMode", m_sMode )
WritingElement_ReadAttributes_End( oReader )
//External rels не нормализуем, иначе искажаются пути в гиперссылках.

View File

@ -641,7 +641,7 @@ namespace Spreadsheet
int nCurDepth = oReader.GetDepth();
while (oReader.ReadNextSiblingNode(nCurDepth))
{
std::wstring sName = oReader.GetName();
std::wstring sName = oReader.GetNameNoNS();
if (L"sheetNames" == sName)
{
@ -671,6 +671,10 @@ namespace Spreadsheet
writer.WriteString(L"\" xmlns:r=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships\"");
}
writer.WriteString(L">");
if (m_oAlternateUrls.IsInit())
{
m_oAlternateUrls ->toXML(writer);
}
if (m_oSheetNames.IsInit())
{
m_oSheetNames->toXML(writer);
@ -1407,8 +1411,8 @@ namespace Spreadsheet
{
ReadAttributes(oReader);
if (!oReader.IsEmptyNode())
oReader.ReadTillEnd();
if (oReader.IsEmptyNode())
return;
int nCurDepth = oReader.GetDepth();
while (oReader.ReadNextSiblingNode(nCurDepth))
@ -1453,7 +1457,7 @@ namespace Spreadsheet
{
writer.WriteString(L"<xxl21:relativeUrl r:id=\"" + m_oRelativeUrlRid->ToString() + L"\"/>");
}
writer.WriteString(L"<xxl21:alternateUrls>");
writer.WriteString(L"</xxl21:alternateUrls>");
}
std::wstring CAlternateUrls::toXML() const
{