12#ifndef ARCANE_CORE_XMLNODE_H
13#define ARCANE_CORE_XMLNODE_H
17#include "arcane/utils/String.h"
18#include "arcane/core/Dom.h"
37class XmlNodeConstIterator;
99 PROCESSING_INSTRUCTION = 7,
107 DOCUMENT_FRAGMENT = 11,
116 explicit XmlNode(IRessourceMng* m) : m_rm(m), m_node() {}
117 XmlNode() : m_rm(nullptr), m_node() {}
122 inline iterator begin();
124 inline iterator end();
126 inline const_iterator begin()
const;
128 inline const_iterator end()
const;
141 String xpathFullName()
const;
144 bool isNamed(
const String& name)
const;
153 String value()
const;
160 Integer valueAsInteger(
bool throw_exception=
false)
const;
167 Int64 valueAsInt64(
bool throw_exception=
false)
const;
176 bool valueAsBoolean(
bool throw_exception=
false)
const;
182 Real valueAsReal(
bool throw_exception=
false)
const;
190 void setValue(
const String& value);
197 String attrValue(
const String& name,
bool throw_exception=
false)
const;
200 void setAttrValue(
const String& name,
const String& value);
208 XmlNode attr(
const String& name,
bool throw_exception=
false)
const;
215 XmlNode forceAttr(
const String& name);
221 void removeAttr(
const String& name)
const;
227 XmlNode documentElement()
const;
233 XmlNode ownerElement()
const;
244 XmlNode child(
const String& name)
const;
252 XmlNode expectedChild(
const String& name)
const;
255 XmlNodeList children(
const String& name)
const;
258 XmlNodeList children()
const;
267 void append(
const XmlNode& child_node) { m_node.appendChild(child_node.domNode()); }
269 void remove(
const XmlNode& child_node);
290 void operator++() { m_node = m_node.nextSibling(); }
291 void operator--() { m_node = m_node.previousSibling(); }
294 bool null()
const {
return m_node._null(); }
295 bool operator!()
const {
return null(); }
298 dom::Node domNode()
const {
return m_node; }
300 void assignDomNode(
const dom::Node& node);
311 XmlNode insertAfter(
const XmlNode& new_child,
const XmlNode& ref_node);
317 XmlNode childWithAttr(
const String& elem_name,
const String& attr_name,
318 const String& attr_value)
const;
323 XmlNode childWithNameAttr(
const String& elem_name,
324 const String& attr_value)
const;
330 XmlNode xpathNode(
const String& xpath_expr)
const;
344 XmlNode createNode(eType type,
const String& name,
const String& value);
356 XmlNode createNode(eType type,
const String& name_or_value);
363 XmlNode createText(
const String& value);
365 XmlNode createElement(
const String& name);
367 XmlNode createAndAppendElement(
const String& name);
369 XmlNode createAndAppendElement(
const String& name,
const String& value);
371 XmlNode ownerDocument()
const {
return XmlNode(m_rm,m_node.ownerDocument()); }
373 IRessourceMng* rm()
const {
return m_rm; }
382 String _value()
const;
383 XmlNode _build(
const dom::Node& node)
const;
384 XmlNode _nullNode()
const;
385 void _setNode(
const dom::Node& n) { m_node = n; }
386 inline void _throwBadConvert(
const char* type_name,
const String& value)
const;
416 return n1.domNode()==n2.domNode();
420operator!=(
const XmlNode& n1,
const XmlNode& n2)
422 return n1.domNode()!=n2.domNode();
Interface d'un gestionnaire de ressource.
int difference_type
Type d'une distance entre itérateur éléments du tableau.
Integer size_type
Type indexant le tableau.
XmlNode value_type
Type des éléments du tableau.
value_type & reference
Type référence d'un élément du tableau.
const value_type & const_reference
Type référence constante d'un élément du tableau.
value_type * pointer
Type pointeur d'un élément du tableau.
const value_type * const_pointer
Type pointeur constant d'un élément du tableau.
XmlNodeIterator iterator
Type de l'itérateur sur un élément du tableau.
XmlNode prev() const
Noeud précédent (previousSibling())
XmlNodeConstIterator const_iterator
Type de l'itérateur constant sur un élément du tableau.
void append(const XmlNode &child_node)
Ajoute child_node comme fils de ce noeud.
IterT< XmlNode > iter
Type d'un itérateur sur tout le tableau.
XmlNode front() const
Premier fils.
bool null() const
Vrai si le noeud est nul.
XmlNode next() const
Noeud suivant (nextSibling())
eType
NodeType An integer indicating which type of node this is.
ConstIterT< XmlNode > const_iter
Type d'un itérateur constant sur tout le tableau.
XmlNode parent() const
Parent de ce noeud (null si aucun)
XmlNode last() const
Dernier fils.
Chaîne de caractères unicode.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
double Real
Type représentant un réel.
Int32 Integer
Type représentant un entier.