Package org.bgerp.util.xml
Class XMLUtils
java.lang.Object
org.bgerp.util.xml.XMLUtils
- Direct Known Subclasses:
XMLUtils
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic voidcreateTextNode(Node node, String text) Создание текстового узла - потомка.Делает Iterable от Element из NodeList, для удобного обхода.static ElementgetElement(Document doc, String elementName) Ищет элемент в документе по имени.static StringgetElementText(Node node) Extracts content of a XML element as a string with all sub-tags.static NodeБерёт Node по имени тега из Document.static final DocumentСоздаёт и возвращает новый объект XML документ.static final ElementnewElement(Document parent, String name) Создать элемент на родительском документе.static final ElementnewElement(Element parent, String name) Создаёт объект-узел с заданным именем в родительском узле.static DocumentparseDocument(InputStream stream) static DocumentparseDocument(InputSource source) static ElementselectElement(Node node, String expression) Возвращает элемент по XPath expression.selectElements(Node node, String expression) static NodeselectNode(Node node, String expression) Возвращает Node по XPath expression.static NodeListselectNodeList(Node node, String expression) Возвращает NodeList по XPath expression.static StringselectText(Node node, String expression) Выборка строкового значения по xpath.static StringselectText(Node node, String expression, String defaultValue) Выборка строкового значения по xpath.static voidserialize(Node xml, OutputStream result, String encoding, boolean pretty) static voidsetAttribute(Element element, String name, String value) Установка значения атрибута, только если оно не равно null.
-
Constructor Details
-
XMLUtils
public XMLUtils()
-
-
Method Details
-
getElementText
Extracts content of a XML element as a string with all sub-tags.- Parameters:
node- the element node.- Returns:
-
newDocument
Создаёт и возвращает новый объект XML документ.- Returns:
-
newElement
Создаёт объект-узел с заданным именем в родительском узле.- Parameters:
parent- родительский узел.name- имя нового узла.- Returns:
-
newElement
Создать элемент на родительском документе. Ибо для Element версия ни при каких условиях не работает (OwnerDocument всегда null), не помогает и всякие getDocumentElement.- Parameters:
parent-name-- Returns:
-
createTextNode
Создание текстового узла - потомка. То есть "устанавливаем текст внутрь указанного нода". Если нод - /data, то будет <data>текст</data>- Parameters:
node- узелtext- текст
-
setAttribute
Установка значения атрибута, только если оно не равно null.- Parameters:
element- элементname- имя аттрибутаvalue- значение аттрибута
-
parseDocument
-
parseDocument
-
getElement
Ищет элемент в документе по имени. Если не находит - возвращает созданный.- Parameters:
doc-elementName-- Returns:
-
getNode
Берёт Node по имени тега из Document. В случае отсутствия - создаёт новый Node и возвращает его.- Parameters:
doc- документnodeName- имя узла- Returns:
- узел
- See Also:
-
selectElement
Возвращает элемент по XPath expression.- Parameters:
node-expression- XPath expression- Returns:
- элемент, если найден - иначе null
- See Also:
-
selectNode
Возвращает Node по XPath expression. Пример: /data/table - выбрать элемент table лежащий в корне. Пример: //table - выбрать элемент table где попало- Parameters:
node-expression- XPath expression- Returns:
- Node, если найден - иначе null
-
selectNodeList
Возвращает NodeList по XPath expression.- Parameters:
node-expression- XPath expression- Returns:
- NodeList, если найден - иначе null
-
selectElements
-
elements
Делает Iterable от Element из NodeList, для удобного обхода.- Parameters:
nodeList- исходный NodeList- Returns:
- Iterable<Element>.
-
selectText
Выборка строкового значения по xpath. Дефолт валуе - null.- See Also:
-
selectText
Выборка строкового значения по xpath. То есть практически тоже самое, что selectNode, только от него возвращается node value, либо null, если что-то не найдено или какая-то ошибка (нуть не должен возвращать текст итд) Может возвращать и значения текстовых нод и значения атрибутов, универсальная.
В целом, не предназначен для выборок вроде selectText( node, "@selected", null), потому что в том что getAttribute возвращает не null, а пустую строку нет ничего страшного. Тем более есть метод, который и null возвращает и работает быстрее.
Примеры запросов:
1) запрос текстового значения атрибута<data><payment cardnumber="111">... /data/payment/@cardnumber
2) запрос текстового значения ноды...<operation><pursesrc>текст</pursesrc>... /operation/pursesrc/text()
3) не от корня, а относительно - начиная не со сшеша
4) искать где попало - два слеша
5) и т.д., ну вы поняли- Parameters:
node- ноде корневойexpression- xpathdefaultValue- значение по умолчанию- Returns:
- строка
- See Also:
-
serialize
public static void serialize(Node xml, OutputStream result, String encoding, boolean pretty) throws Exception - Throws:
Exception
-