Print (XmlDoc/XmlNode subroutine): Difference between revisions
mNo edit summary |
|||
Line 4: | Line 4: | ||
==Syntax== | ==Syntax== | ||
{{Template:XmlDoc/XmlNode:Print syntax}} | {{Template:XmlDoc/XmlNode:Print syntax}} | ||
===Syntax terms=== | ===Syntax terms=== | ||
<table class="syntaxTable"> | <table class="syntaxTable"> | ||
<tr><th>nr</th> | <tr><th>nr</th> | ||
<td>An <var>XmlDoc</var> or <var>XmlNode</var>, used as the context node for the [[XPath#XPath_syntax|XPath expression]]. If an <var>XmlDoc</var>, the <var>Root</var> node is the context node.</td></tr> | <td>An <var>XmlDoc</var> or <var>XmlNode</var>, used as the context node for the [[XPath#XPath_syntax|XPath expression]]. If an <var>XmlDoc</var>, the <var>Root</var> node is the context node.</td></tr> | ||
<tr><th>xpath</th> | <tr><th>xpath</th> | ||
<td>A <var>Unicode</var> string that is an XPath expression that results in a nodelist, the head of which is the top of the subtree to print. An optional argument, its default is a period (<code>.</code>), that is, the node referenced by the method object (<var class="term">nr</var>).</td></tr> | <td>A <var>Unicode</var> string that is an XPath expression that results in a nodelist, the head of which is the top of the subtree to print. An optional argument, its default is a period (<code>.</code>), that is, the node referenced by the method object (<var class="term">nr</var>).</td></tr> | ||
<tr><th>options</th> | <tr><th>options</th> | ||
<td>A blank delimited string that can contain one or more of the following options. < | <td>A blank delimited string that can contain one or more of the following options. <p class="note">'''Note:''' These options are described in greater detail in [[XmlDoc API serialization options|"XmlDoc API serialization options"]]. </p> | ||
<ul> | <ul> | ||
<li><b>AllowXmlDecl</b> or <b>NoXmlDecl</b><br> | <li><b>AllowXmlDecl</b> or <b>NoXmlDecl</b><br> | ||
Line 26: | Line 29: | ||
<li><b>NoEmptyElt</b><br> | <li><b>NoEmptyElt</b><br> | ||
This deprecated option serializes all empty elements with a start tag followed by an end tag. The default is to serialize an empty element with an empty element tag (as in <code><middleName/></code>). | This deprecated option serializes all empty elements with a start tag followed by an end tag. The default is to serialize an empty element with an empty element tag (as in <code><middleName/></code>). It is deprecated in order to deter users from using the <var>NoEmptyElt</var> option to serialize HTML: The recommended approach for HTML is shown on the <var>[[NoEmptyElement (XmlNode property)#browserExample|NoEmptyElement]]</var> property page — some tags (<code><div></code>) <b>require</b> separate start and end tags, while other tags (<code><br></code>) <b>do not allow</b> separate start and end tags. | ||
<li><b>OmitNullElement</b><br> | <li><b>OmitNullElement</b><br> |
Revision as of 17:37, 9 March 2014
Print selected subtree (XmlDoc and XmlNode classes)
The Print subroutine displays an XmlDoc subtree in a readable form, useful for debugging, for example.
Syntax
nr:Print[( [xpath], [options])] Throws XPathError
Syntax terms
nr | An XmlDoc or XmlNode, used as the context node for the XPath expression. If an XmlDoc, the Root node is the context node. |
---|---|
xpath | A Unicode string that is an XPath expression that results in a nodelist, the head of which is the top of the subtree to print. An optional argument, its default is a period (. ), that is, the node referenced by the method object (nr). |
options | A blank delimited string that can contain one or more of the following options. Note: These options are described in greater detail in "XmlDoc API serialization options".
|
Usage notes
- Options may be specified in any case. For example, you can use either
NoXmlDecl
ornoxmldecl
, interchangeably. - As a debugging aide, Print may be issued for the root node of an XmlDoc that is not well-formed, that is, does not contain an Element.
- As of Sirius Mods Version 7.6, Attribute values are always serialized within double-quotation-mark (
"
) delimiters, and a double-quotation mark character in an attribute value is serialized as"
. Prior to Sirius Mods Version 7.6, this convention was not strictly observed.
Examples
- In the following example, the Print method is called first in its default form with no arguments, then with explicit values for its options:
begin print 'Print method' print '***********' %doc is object xmlDoc %doc = new call %doc:loadXml('<top><a><b>05</b></a><a2/></top>') %doc:Version ='1.0' call %doc:print print 'Non-default display:' call %doc:print('/', 'NoXmlDecl NoEmptyElt Indent 6 Expanded') end
The example results follow:
<?xml version="1.0"?> <top> <a> <b>05</b> </a> <a2/> </top> Non-default display: <top> <a> <b> 05 </b> </a> <a2> </a2> </top>
- In the following fragment, the Print result for a document with untranslatable Unicode is shown:
%doc2:addElement('circumference', '2 * π * r':U) %doc2:print
The result follows (the Unicode codepoint for the Greek letter π has the hexadecimal value 03C0):
<circumference>2 * π * r</circumference>
Request-cancellation errors
This list is not exhaustive: it does not include all the errors that are request cancelling.
- The xpath expression is invalid.
- The result of xpath is empty.
- options values are invalid.
- Insufficient free space exists in CCATEMP.
See also
- For more information about using XPath expressions, see "XPath".
- To more accurately serialize an XmlDoc, as opposed to providing a "displayable" form, use the Serial function. The Print subroutine, like its analogs Audit and Trace, inserts line breaks and performs indentation.
- See the description of Unicode to EBCDIC conversion performed by Print.
- Additional serializing methods include:
- WebSend
- AddXml (HttpRequest class)