
op.xmlElement( name as String, [attributeValue as attributeNode], [childContent as String] ) as elementNode
This function constructs an XML element with the name (which can be a string or QName), zero or more attributes, and child content. The child content can include a sequence or array of atomic values or an element, comment, or processing instruction nodes. Atomic values are converted to text nodes.
| Parameters | |
|---|---|
| name | The string or QName for the constructed element. |
| attributeValue |
Any element attributes returned from op.xmlAttribute,
or null if no attributes.
|
| childContent | A sequence or array of atomic values or an element, a comment from op.xmlComment, or processing instruction nodes from op.xmlPI. |
const op = require('/MarkLogic/optic');
const literals = op.fromLiterals([
{row:1, gp: 1, nm:"alpha", str:"a", num:10, bool:true},
{row:2, gp: 1, nm:"beta", str:"b", num:20, bool:false},
{row:3, gp: 2, nm:"gamma", str:"c", num:30, bool:true},
{row:4, gp: 2, nm:"delta", str:"d", num:40, bool:false}
])
literals.where(op.eq(op.col('gp'), 1))
.select(['row',
op.as('node',
op.xmlDocument(
op.xmlElement(op.col('nm'),
null,
op.xmlElement(op.col('str'),
op.xmlAttribute('row',op.col('row')),
op.xmlText(op.col('bool')))
)
)),
op.as('kind', op.xdmp.nodeKind(op.col('node')))
])
.orderBy('row')
.result();