Package org.apache.solr.common.util

## Class DOMUtil

- java.lang.Object
- - org.apache.solr.common.util.DOMUtil

    public class DOMUtil
    extends Object

### Field Summary

Fields
`static Set<String>` `NL_TAGS`
`static String` `XML_RESERVED_PREFIX`

### Constructor Summary

Constructors
`DOMUtil()`

### Method Summary

All Methods Static Methods Concrete Methods
`static void` `addToNamedList​(Node nd, NamedList<Object> nlst, List<Object> arr)` Examines a Node from the DOM representation of a NamedList and adds the contents of that node to both the specified NamedList and List passed as arguments.
`static List<Object>` `childNodesToList​(Node nd)`
`static NamedList<Object>` `childNodesToNamedList​(ConfigNode node)`
`static NamedList<Object>` `childNodesToNamedList​(Node nd)`
`static String` `getAttr​(ConfigNode node, String name, String missing_err)`
`static String` `getAttr​(NamedNodeMap attrs, String name)`
`static String` `getAttr​(NamedNodeMap attrs, String name, String missing_err)`
`static String` `getAttr​(Node nd, String name)`
`static String` `getAttr​(Node node, String name, String missing_err)`
`static String` `getAttrOrDefault​(Node nd, String name, String def)`
`static Node` `getChild​(Node node, String name)`
`static String` `getText​(Node nd)` Drop in replacement for Node.getTextContent().
`static List<Object>` `nodesToList​(NodeList nlst)`
`static NamedList<Object>` `nodesToNamedList​(NodeList nlst)`
`static NamedList<Object>` `readNamedListChildren​(ConfigNode configNode)`
`static void` `substituteProperties​(Node node, Properties properties)` Replaces ${property[:default value]} references in all attributes and text nodes of supplied node.
`static String` `substituteProperty​(String value, Properties coreProperties)`
`static void` `substituteSystemProperties​(Node node)` Replaces ${system.property[:default value]} references in all attributes and text nodes of supplied node.
`static Map<String,​String>` `toMap​(ConfigNode node)`
`static Map<String,​String>` `toMap​(NamedNodeMap attrs)`
`static Map<String,​String>` `toMapExcept​(ConfigNode node, String... exclusions)`
`static Map<String,​String>` `toMapExcept​(NamedNodeMap attrs, String... exclusions)`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Field Detail

#### XML_RESERVED_PREFIX

    public static final String XML_RESERVED_PREFIX

See Also:
  Constant Field Values

#### NL_TAGS

    public static final Set<String> NL_TAGS

### Constructor Detail

#### DOMUtil

    public DOMUtil()

### Method Detail

#### toMap

    public static Map<String,​String> toMap​(NamedNodeMap attrs)

#### toMap

    public static Map<String,​String> toMap​(ConfigNode node)

#### toMapExcept

    public static Map<String,​String> toMapExcept​(ConfigNode node,
                                                       String... exclusions)

#### toMapExcept

    public static Map<String,​String> toMapExcept​(NamedNodeMap attrs,
                                                       String... exclusions)

#### getChild

    public static Node getChild​(Node node,
                                String name)

#### getAttr

    public static String getAttr​(NamedNodeMap attrs,
                                 String name)

#### getAttr

    public static String getAttr​(Node nd,
                                 String name)

#### getAttrOrDefault

    public static String getAttrOrDefault​(Node nd,
                                          String name,
                                          String def)

#### getAttr

    public static String getAttr​(NamedNodeMap attrs,
                                 String name,
                                 String missing_err)

#### getAttr

    public static String getAttr​(ConfigNode node,
                                 String name,
                                 String missing_err)

#### getAttr

    public static String getAttr​(Node node,
                                 String name,
                                 String missing_err)

#### childNodesToNamedList

    public static NamedList<Object> childNodesToNamedList​(Node nd)

#### childNodesToList

    public static List<Object> childNodesToList​(Node nd)

#### childNodesToNamedList

    public static NamedList<Object> childNodesToNamedList​(ConfigNode node)

#### nodesToNamedList

    public static NamedList<Object> nodesToNamedList​(NodeList nlst)

#### nodesToList

    public static List<Object> nodesToList​(NodeList nlst)

#### addToNamedList

    public static void addToNamedList​(Node nd,
                                      NamedList<Object> nlst,
                                      List<Object> arr)

Examines a Node from the DOM representation of a NamedList and adds the contents of that node to both the specified NamedList and List passed as arguments.

Parameters:
  `nd` - The Node whose type will be used to determine how to parse the text content. If there is a 'name' attribute it will be used when adding to the NamedList
  `nlst` - A NamedList to add the item to with name if application. If this param is null it will be ignored.
  `arr` - A List to add the item to. If this param is null it will be ignored.

#### readNamedListChildren

    public static NamedList<Object> readNamedListChildren​(ConfigNode configNode)

#### getText

    public static String getText​(Node nd)

Drop in replacement for Node.getTextContent().

This method is provided to support the same functionality as Node.getTextContent() but in a way that is DOM Level 2 compatible.

See Also:
  DOM Object Model Core

#### substituteSystemProperties

    public static void substituteSystemProperties​(Node node)

Replaces ${system.property[:default value]} references in all attributes and text nodes of supplied node. If the system property is not defined and no default value is provided, a runtime exception is thrown.

Parameters:
  `node` - DOM node to walk for substitutions

#### substituteProperties

    public static void substituteProperties​(Node node,
                                            Properties properties)

Replaces ${property[:default value]} references in all attributes and text nodes of supplied node. If the property is not defined, either in the given Properties instance nor in System.getProperty and no default value is provided, a runtime exception is thrown.

Parameters:
  `node` - DOM node to walk for substitutions
  `properties` - the Properties instance from which a value can be looked up

#### substituteProperty

    public static String substituteProperty​(String value,
                                            Properties coreProperties)