diff options
Diffstat (limited to 'core/fxcrt/fx_xml_composer.cpp')
-rw-r--r-- | core/fxcrt/fx_xml_composer.cpp | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/core/fxcrt/fx_xml_composer.cpp b/core/fxcrt/fx_xml_composer.cpp new file mode 100644 index 0000000000..93aee899dd --- /dev/null +++ b/core/fxcrt/fx_xml_composer.cpp @@ -0,0 +1,43 @@ +// Copyright 2014 PDFium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com + +#include "core/fxcrt/xml_int.h" + +#include "core/include/fxcrt/fx_xml.h" + +void FX_XML_SplitQualifiedName(const CFX_ByteStringC& bsFullName, + CFX_ByteStringC& bsSpace, + CFX_ByteStringC& bsName) { + if (bsFullName.IsEmpty()) { + return; + } + int32_t iStart = 0; + for (; iStart < bsFullName.GetLength(); iStart++) { + if (bsFullName.GetAt(iStart) == ':') { + break; + } + } + if (iStart >= bsFullName.GetLength()) { + bsName = bsFullName; + } else { + bsSpace = CFX_ByteStringC(bsFullName.GetCStr(), iStart); + iStart++; + bsName = CFX_ByteStringC(bsFullName.GetCStr() + iStart, + bsFullName.GetLength() - iStart); + } +} +void CXML_Element::SetTag(const CFX_ByteStringC& qSpace, + const CFX_ByteStringC& tagname) { + m_QSpaceName = qSpace; + m_TagName = tagname; +} +void CXML_Element::SetTag(const CFX_ByteStringC& qTagName) { + ASSERT(!qTagName.IsEmpty()); + CFX_ByteStringC bsSpace, bsName; + FX_XML_SplitQualifiedName(qTagName, bsSpace, bsName); + m_QSpaceName = bsSpace; + m_TagName = bsName; +} |