Changes

Jump to navigation Jump to search
960 bytes added ,  17:39, 1 December 2023
m
Text replacement - "syntaxhighlight" to "pre"
This [[Module Library|XQuery Module]] provides functions for converting HTML to XML. The input Conversion will only be converted take place if [http://home.ccil.org/~cowan/XML/tagsoup/ TagSoup] is included in the classpath (see [[Parsers#HTML Parser|HTML Parsing]] for more details).
=Conventions=
All functions and errors in this module are assigned to the {{Code|<code><nowiki>http://basex.org/modules/html}} </nowiki></code> namespace, which is statically bound to the {{Code|html}} prefix.<br/>All errors are assigned to the {{Code|http://basex.org/errors}} namespace, which is statically bound to the {{Code|bxerr}} prefix.
=Functions=
==html:parserdoc==
{| width='100%'
|-valign="top"| width='90120' | '''SignaturesSignature'''|{{Code|'''<pre>html:parser'''doc() $href as xs:string?, $options as map(*)? := map { }}) as document-node()?<br /pre>|-valign="top"
| '''Summary'''
|Returns Fetches the name of HTML document referred to by the applied HTML parser (currently: given {{Code|$href}}, converts it to XML and returns a document node. The {{Code|TagSoup$options}})argument can be used to set [[Parsers#Options|TagSoup Options]]. If an |- valign="top"| ''empty string'Errors' is returned, TagSoup was not found in the classpath, and ''|{{Error|parse|#Errors}} the input will cannot be treated as well-formed converted to XML.<br />
|}
==html:parse==
 
{| width='100%'
|-valign="top"| width='90120' | '''SignaturesSignature'''|{{Func|html:parse|$input as xs:anyAtomicType|document-node()}}<br /pre>{{Func|html:parse|( $input value as xs:anyAtomicType, $options as itemmap(*)? := map { })|as document-node()}}<br /pre>|-valign="top"
| '''Summary'''
|Converts the HTML document specified by {{Code|$inputvalue}} to XML, and returns a document node. :<br/>* The input may either be a of type {{Code|xs:string or a binary item (}}, {{Code|xs:hexBinarybase64Binary}}, or {{Code|xs:base64Binary)hexBinary}}. * If the input is passed on in its binary representation, and if no encoding option is supplied, the HTML parser will try to automatically choose the correct encodingautomatically.<br/> The {{Code|$options}} argument can be used to set [[Parsers#TagSoup Options|TagSoup optionsOptions]]. It can |- valign="top"| '''Errors'''|{{Error|parse|#Errors}} the input cannot be specifiedconverted to XML.|} ==html:parser== {| width='100%'|- valign="top"| width='120' | '''Signature'''|{{Code|'''html:parser'''() as xs:string}}<br />* as children |- valign="top"| '''Summary'''|Returns the name of an the applied HTML parser (currently: {{Code|TagSoup}}). If an ''empty string'' is returned, TagSoup was not found in the classpath, and the input will be treated as well-formed XML.<html:optionsbr/>|}} element =Examples= ===Basic Example=== The following query converts the specified string to an XML document node. ; e.g.Query:<pre classlang="brush'xquery'>html:xmlparse("<html>")<html/pre> ;Result:options<pre lang="xml"> <htmlxmlns="http:key1 value='value1'/> /www.w3..<org/1999/xhtml"/html:options>
</pre>
* as ===Specifying Options=== The next query creates an XML document with namespaces: ;Query:<pre lang='xquery'>html:parse("<a href='ok.html'/>", map{ 'nons': false() })</pre> ;Result:<pre lang="xml"><html xmlns="http://www.w3.org/1999/xhtml"> <body> <a shape="rect" href="ok.html"/> </body></html></pre> ===Parsing Binary Input=== If the input encoding is unknown, which contains all keythe data to be processed can be passed on in its binary representation.The HTML parser will automatically try to detect the correct encoding: ;Query:<pre lang='xquery'>html:parse(fetch:binary("https://en.wikipedia.org"))</value pairspre> ;Result:<pre classlang="brush:xml">map { <html xmlns="http://www.w3.org/1999/xhtml" class="client-nojs" dir="key1ltr" :lang= "value1en"> <head> <title>Wikipedia, the free encyclopedia</title> <meta charset="UTF-8"/> ... }
</pre>
|-
| '''Errors'''
|{{Error|BXHL0001|#Errors}} the input cannot be converted to XML.
|-
| '''Examples'''
|
* {{Code|html:parse("<html></html>")}} returns {{Code|<html/>}}
* <code><nowiki>html:parse(fetch:content-binary("http://en.wikipedia.org"))</nowiki></code> returns an XML representation of the English Wikipedia main page. The input is passed on its binary representation such that the HTML parser can automatically detect the correct encoding.
|}
=Errors=
{| width='100%' class="wikitable" width="100%"! width="5%110"|Code! width="95%"|Description|-valign="top"|{{Code|BXHL0001parse}}
|The input cannot be converted to XML.
|}
=Changelog=
The module was introduced with ;Version 79.5.14 * Added: {{Function||html:doc}} ;Version 9.0 * Updated: error codes updated; errors now use the module namespace
[[Category:XQuery]]The module was introduced with Version 7.6.
Bureaucrats, editor, reviewer, Administrators
13,554

edits

Navigation menu