summaryrefslogtreecommitdiff
path: root/core
diff options
context:
space:
mode:
authordan sinclair <dsinclair@chromium.org>2018-04-16 17:59:07 +0000
committerChromium commit bot <commit-bot@chromium.org>2018-04-16 17:59:07 +0000
commitbdbfc08f96f89581bea277d5ddd9755e893067d7 (patch)
tree3639bd042f64e5a93480a87e5a1d374ffe56a3e6 /core
parentcce4d31e6e746bae72f2f31676c12f1d2851ade3 (diff)
downloadpdfium-bdbfc08f96f89581bea277d5ddd9755e893067d7.tar.xz
Convert CXFA_XMLLocale to CFX_XML
This CL converts CXFA_XMLLocale to use CFX_XML instead of CXML. Change-Id: I1db617a658548ae5979f2f38d72c5b3000998663 Reviewed-on: https://pdfium-review.googlesource.com/30693 Reviewed-by: Henrique Nakashima <hnakashima@chromium.org> Commit-Queue: dsinclair <dsinclair@chromium.org>
Diffstat (limited to 'core')
-rw-r--r--core/fxcrt/xml/cfx_xmlelement.cpp22
-rw-r--r--core/fxcrt/xml/cfx_xmlelement.h4
2 files changed, 26 insertions, 0 deletions
diff --git a/core/fxcrt/xml/cfx_xmlelement.cpp b/core/fxcrt/xml/cfx_xmlelement.cpp
index 530752e1dd..27d136305b 100644
--- a/core/fxcrt/xml/cfx_xmlelement.cpp
+++ b/core/fxcrt/xml/cfx_xmlelement.cpp
@@ -119,3 +119,25 @@ void CFX_XMLElement::Save(
}
pXMLStream->WriteString(ws.AsStringView());
}
+
+CFX_XMLElement* CFX_XMLElement::GetFirstChildNamed(
+ const WideStringView& name) const {
+ return GetNthChildNamed(name, 0);
+}
+
+CFX_XMLElement* CFX_XMLElement::GetNthChildNamed(const WideStringView& name,
+ size_t idx) const {
+ for (auto* child = GetFirstChild(); child; child = child->GetNextSibling()) {
+ if (child->GetType() != FX_XMLNODE_Element)
+ continue;
+
+ CFX_XMLElement* elem = static_cast<CFX_XMLElement*>(child);
+ if (elem->GetName() != name)
+ continue;
+ if (idx == 0)
+ return elem;
+
+ --idx;
+ }
+ return nullptr;
+}
diff --git a/core/fxcrt/xml/cfx_xmlelement.h b/core/fxcrt/xml/cfx_xmlelement.h
index e665e24a98..f713114eb7 100644
--- a/core/fxcrt/xml/cfx_xmlelement.h
+++ b/core/fxcrt/xml/cfx_xmlelement.h
@@ -23,6 +23,10 @@ class CFX_XMLElement : public CFX_XMLAttributeNode {
std::unique_ptr<CFX_XMLNode> Clone() override;
void Save(const RetainPtr<CFX_SeekableStreamProxy>& pXMLStream) override;
+ CFX_XMLElement* GetFirstChildNamed(const WideStringView& name) const;
+ CFX_XMLElement* GetNthChildNamed(const WideStringView& name,
+ size_t idx) const;
+
WideString GetLocalTagName() const;
WideString GetNamespacePrefix() const;
WideString GetNamespaceURI() const;