24#include <com/sun/star/xml/dom/DOMException.hpp>
30using namespace css::uno;
31using namespace css::xml::dom;
36 ::osl::Mutex & rMutex)
37 : m_pElement(
std::move(pElement))
53 xmlAttrPtr cur = pNode->properties;
54 while (cur !=
nullptr)
66 Reference< XNode > SAL_CALL
71 Reference< XNode > aNode;
76 xmlChar
const *
pName =
reinterpret_cast<xmlChar
const *
>(o1.getStr());
77 xmlAttrPtr cur = pNode->properties;
78 while (cur !=
nullptr)
80 if( strcmp(
reinterpret_cast<char const *
>(
pName),
reinterpret_cast<char const *
>(cur->name)) == 0)
82 aNode =
m_pElement->GetOwnerDocument().GetCNode(
83 reinterpret_cast<xmlNodePtr
>(cur));
95 Reference< XNode > SAL_CALL
97 OUString
const& namespaceURI, OUString
const& localName)
101 Reference< XNode > aNode;
103 if (pNode !=
nullptr)
106 xmlChar
const *
pName =
reinterpret_cast<xmlChar
const *
>(o1.getStr());
108 xmlChar
const* pSearchNs =
109 reinterpret_cast<xmlChar const*
>(o2.getStr());
110 xmlNsPtr
const pNs = xmlSearchNsByHref(pNode->doc, pNode, pSearchNs);
111 xmlAttrPtr cur = pNode->properties;
112 while (cur !=
nullptr && pNs !=
nullptr)
114 if( strcmp(
reinterpret_cast<char const *
>(
pName),
reinterpret_cast<char const *
>(cur->name)) == 0 &&
117 aNode =
m_pElement->GetOwnerDocument().GetCNode(
118 reinterpret_cast<xmlNodePtr
>(cur));
130 Reference< XNode > SAL_CALL
133 ::osl::MutexGuard
const g(
m_rMutex);
135 Reference< XNode > aNode;
137 if (pNode !=
nullptr)
139 xmlAttrPtr cur = pNode->properties;
141 while (cur !=
nullptr)
145 aNode =
m_pElement->GetOwnerDocument().GetCNode(
146 reinterpret_cast<xmlNodePtr
>(cur));
159 Reference< XNode > SAL_CALL
163 Reference< XAttr >
const xAttr(
m_pElement->getAttributeNode(
name));
166 "CAttributesMap::removeNamedItem: no such attribute",
168 DOMExceptionType_NOT_FOUND_ERR);
170 return m_pElement->removeAttributeNode(xAttr);
176 Reference< XNode > SAL_CALL
178 OUString
const& namespaceURI, OUString
const& localName)
181 Reference< XAttr >
const xAttr(
182 m_pElement->getAttributeNodeNS(namespaceURI, localName));
185 "CAttributesMap::removeNamedItemNS: no such attribute",
187 DOMExceptionType_NOT_FOUND_ERR);
189 return m_pElement->removeAttributeNode(xAttr);
195 Reference< XNode > SAL_CALL
198 Reference< XAttr >
const xAttr(xNode, UNO_QUERY);
201 "CAttributesMap::setNamedItem: XAttr argument expected",
203 DOMExceptionType_HIERARCHY_REQUEST_ERR);
212 Reference< XNode > SAL_CALL
215 Reference< XAttr >
const xAttr(xNode, UNO_QUERY);
218 "CAttributesMap::setNamedItemNS: XAttr argument expected",
220 DOMExceptionType_HIERARCHY_REQUEST_ERR);
virtual css::uno::Reference< css::xml::dom::XNode > SAL_CALL item(sal_Int32 index) override
Returns the indexth item in the map.
virtual css::uno::Reference< css::xml::dom::XNode > SAL_CALL removeNamedItemNS(OUString const &namespaceURI, OUString const &localName) override
Removes a node specified by local name and namespace URI.
virtual css::uno::Reference< css::xml::dom::XNode > SAL_CALL getNamedItem(OUString const &name) override
Retrieves a node specified by local name.
virtual css::uno::Reference< css::xml::dom::XNode > SAL_CALL setNamedItemNS(css::uno::Reference< css::xml::dom::XNode > const &arg) override
Adds a node using its namespaceURI and localName.
virtual sal_Int32 SAL_CALL getLength() override
The number of nodes in this map.
::rtl::Reference< CElement > const m_pElement
virtual css::uno::Reference< css::xml::dom::XNode > SAL_CALL removeNamedItem(OUString const &name) override
Removes a node specified by name.
virtual css::uno::Reference< css::xml::dom::XNode > SAL_CALL getNamedItemNS(OUString const &namespaceURI, OUString const &localName) override
Retrieves a node specified by local name and namespace URI.
CAttributesMap(::rtl::Reference< CElement > pElement, ::osl::Mutex &rMutex)
virtual css::uno::Reference< css::xml::dom::XNode > SAL_CALL setNamedItem(css::uno::Reference< css::xml::dom::XNode > const &arg) override
Adds a node using its nodeName attribute.
OString OUStringToOString(std::u16string_view str, ConnectionSettings const *settings)