diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 24e357ea..308dda23 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -280,6 +280,8 @@ pages: script: - mkdir -p public - cp -r doc/devhelp doc/tutorial doc/xmllint.html doc/xmlcatalog_man.html public + - mkdir -p public/examples + - cp doc/examples/*.html doc/examples/*.c public/examples artifacts: paths: - public diff --git a/doc/examples/examples.xsl b/doc/examples/examples.xsl index bc93a3d7..b3da2eaf 100644 --- a/doc/examples/examples.xsl +++ b/doc/examples/examples.xsl @@ -1,58 +1,32 @@ - + - - - ../ - Examples Menu - - -
- - -
- -
+ https://gnome.pages.gitlab.gnome.org/libxml2/devhelp/libxml2- - +
  • - +
  • line : Type from
  • - +
  • line : Function from
  • - +
  • line : Macro from
  • @@ -116,56 +90,19 @@ install step or when installing the libxml2 development package:

    Libxml2 set of examples - + - - - - + + <xsl:value-of select="$title"/> + - - - - - - - - -
    - - - - - -
    - - - - - - -
    - - - - -
    - - - - -
    - - -

    Daniel Veillard

    -
    -
    -
    -
    -
    + +

    + +
    diff --git a/doc/examples/index.html b/doc/examples/index.html index f4ee1194..e46cb9cc 100644 --- a/doc/examples/index.html +++ b/doc/examples/index.html @@ -1,14 +1,474 @@ - -Libxml2 set of examples
    Action against software patentsGnome2 LogoW3C LogoRed Hat Logo
    Made with Libxml2 Logo

    Libxml2 set of examples

    Examples Menu
    Related links

    The examples are stored per section depending on the main focus - of the example:

    • xmlWriter :

    • InputOutput :

      • io1.c: Example of custom Input/Output
      • io2.c: Output to char buffer
    • Tree :

      • tree1.c: Navigates a tree to print element names
      • tree2.c: Creates a tree
    • XPath :

      • xpath1.c: Evaluate XPath expression and prints result node set.
      • xpath2.c: Load a document, locate subelements with XPath, modify said elements and save the resulting document.
    • Parsing :

      • parse1.c: Parse an XML file to a tree and free it
      • parse2.c: Parse and validate an XML file to a tree and free the result
      • parse3.c: Parse an XML document in memory to a tree and free it
      • parse4.c: Parse an XML document chunk by chunk to a tree and free it
    • xmlReader :

      • reader1.c: Parse an XML file with an xmlReader
      • reader2.c: Parse and validate an XML file with an xmlReader
      • reader3.c: Show how to extract subdocuments with xmlReader
      • reader4.c: Parse multiple XML files reusing an xmlReader

    Getting the compilation options and libraries dependencies needed + + + + Libxml2 set of examples + + +

    Libxml2 set of examples

    +

    The examples are stored per section depending on the main focus + of the example:

    +
      +
    • +

      xmlWriter :

      + +
    • +
    • +

      InputOutput :

      +
        +
      • io1.c: Example of custom Input/Output
      • +
      • io2.c: Output to char buffer
      • +
      +
    • +
    • +

      Tree :

      +
        +
      • tree1.c: Navigates a tree to print element names
      • +
      • tree2.c: Creates a tree
      • +
      +
    • +
    • +

      XPath :

      +
        +
      • xpath1.c: Evaluate XPath expression and prints result node set.
      • +
      • xpath2.c: Load a document, locate subelements with XPath, modify said elements and save the resulting document.
      • +
      +
    • +
    • +

      Parsing :

      +
        +
      • parse1.c: Parse an XML file to a tree and free it
      • +
      • parse2.c: Parse and validate an XML file to a tree and free the result
      • +
      • parse3.c: Parse an XML document in memory to a tree and free it
      • +
      • parse4.c: Parse an XML document chunk by chunk to a tree and free it
      • +
      +
    • +
    • +

      xmlReader :

      +
        +
      • reader1.c: Parse an XML file with an xmlReader
      • +
      • reader2.c: Parse and validate an XML file with an xmlReader
      • +
      • reader3.c: Show how to extract subdocuments with xmlReader
      • +
      • reader4.c: Parse multiple XML files reusing an xmlReader
      • +
      +
    • +
    +

    Getting the compilation options and libraries dependencies needed to generate binaries from the examples is best done on Linux/Unix by using the xml2-config script which should have been installed as part of make -install step or when installing the libxml2 development package:

    gcc -o example `xml2-config --cflags` example.c `xml2-config --libs`

    InputOutput Examples

    io1.c: Example of custom Input/Output

    Demonstrate the use of xmlRegisterInputCallbacks to build a custom I/O layer, this is used in an XInclude method context to show how dynamic document can be built in a clean way.

    Includes:

    Uses:

    Usage:

    io1

    Author: Daniel Veillard

    io2.c: Output to char buffer

    Demonstrate the use of xmlDocDumpMemory to output document to a character buffer

    Includes:

    Uses:

    Usage:

    io2

    Author: John Fleck

    Parsing Examples

    parse1.c: Parse an XML file to a tree and free it

    Demonstrate the use of xmlReadFile() to read an XML file into a tree and xmlFreeDoc() to free the resulting tree

    Includes:

    Uses:

    Usage:

    parse1 test1.xml

    Author: Daniel Veillard

    parse2.c: Parse and validate an XML file to a tree and free the result

    Create a parser context for an XML file, then parse and validate the file, creating a tree, check the validation result and xmlFreeDoc() to free the resulting tree.

    Includes:

    Uses:

    Usage:

    parse2 test2.xml

    Author: Daniel Veillard

    parse3.c: Parse an XML document in memory to a tree and free it

    Demonstrate the use of xmlReadMemory() to read an XML file into a tree and xmlFreeDoc() to free the resulting tree

    Includes:

    Uses:

    Usage:

    parse3

    Author: Daniel Veillard

    parse4.c: Parse an XML document chunk by chunk to a tree and free it

    Demonstrate the use of xmlCreatePushParserCtxt() and xmlParseChunk() to read an XML file progressively into a tree and xmlFreeDoc() to free the resulting tree

    Includes:

    Uses:

    Usage:

    parse4 test3.xml

    Author: Daniel Veillard

    Tree Examples

    tree1.c: Navigates a tree to print element names

    Parse a file to a tree, use xmlDocGetRootElement() to get the root element, then walk the document and print all the element name in document order.

    Includes:

    Uses:

    Usage:

    tree1 filename_or_URL

    Author: Dodji Seketeli

    tree2.c: Creates a tree

    Shows how to create document, nodes and dump it to stdout or file.

    Includes:

    Uses:

    Usage:

    tree2 <filename> -Default output: stdout

    Author: Lucas Brasilino <brasilino@recife.pe.gov.br>

    XPath Examples

    xpath1.c: Evaluate XPath expression and prints result node set.

    Shows how to evaluate XPath expression and register known namespaces in XPath context.

    Includes:

    Uses:

    Usage:

    xpath1 <xml-file> <xpath-expr> [<known-ns-list>]

    Author: Aleksey Sanin

    xpath2.c: Load a document, locate subelements with XPath, modify said elements and save the resulting document.

    Shows how to make a full round-trip from a load/edit/save

    Includes:

    Uses:

    Usage:

    xpath2 <xml-file> <xpath-expr> <new-value>

    Author: Aleksey Sanin and Daniel Veillard

    xmlReader Examples

    reader1.c: Parse an XML file with an xmlReader

    Demonstrate the use of xmlReaderForFile() to parse an XML file and dump the information about the nodes found in the process. (Note that the XMLReader functions require libxml2 version later than 2.6.)

    Includes:

    Uses:

    Usage:

    reader1 <filename>

    Author: Daniel Veillard

    reader2.c: Parse and validate an XML file with an xmlReader

    Demonstrate the use of xmlReaderForFile() to parse an XML file validating the content in the process and activating options like entities substitution, and DTD attributes defaulting. (Note that the XMLReader functions require libxml2 version later than 2.6.)

    Includes:

    Uses:

    Usage:

    reader2 <valid_xml_filename>

    Author: Daniel Veillard

    reader3.c: Show how to extract subdocuments with xmlReader

    Demonstrate the use of xmlTextReaderPreservePattern() to parse an XML file with the xmlReader while collecting only some subparts of the document. (Note that the XMLReader functions require libxml2 version later than 2.6.)

    Includes:

    Uses:

    Usage:

    reader3

    Author: Daniel Veillard

    reader4.c: Parse multiple XML files reusing an xmlReader

    Demonstrate the use of xmlReaderForFile() and xmlReaderNewFile to parse XML files while reusing the reader object and parser context. (Note that the XMLReader functions require libxml2 version later than 2.6.)

    Includes:

    Uses:

    Usage:

    reader4 <filename> [ filename ... ]

    Author: Graham Bennett

    xmlWriter Examples

    testWriter.c: use various APIs for the xmlWriter

    tests a number of APIs for the xmlWriter, especially the various methods to write to a filename, to a memory buffer, to a new document, or to a subtree. It shows how to do encoding string conversions too. The resulting documents are then serialized.

    Includes:

    Uses:

    Usage:

    testWriter

    Author: Alfred Mickautsch

    Daniel Veillard

    +install step or when installing the libxml2 development package:

    +
    gcc -o example `xml2-config --cflags` example.c `xml2-config --libs`
    +

    InputOutput Examples

    +

    io1.c: Example of custom Input/Output

    +

    Demonstrate the use of xmlRegisterInputCallbacks to build a custom I/O layer, this is used in an XInclude method context to show how dynamic document can be built in a clean way.

    +

    Includes:

    + +

    Uses:

    + +

    Usage:

    +

    io1

    +

    Author: Daniel Veillard

    +

    io2.c: Output to char buffer

    +

    Demonstrate the use of xmlDocDumpMemory to output document to a character buffer

    +

    Includes:

    + +

    Uses:

    + +

    Usage:

    +

    io2

    +

    Author: John Fleck

    +

    Parsing Examples

    +

    parse1.c: Parse an XML file to a tree and free it

    +

    Demonstrate the use of xmlReadFile() to read an XML file into a tree and xmlFreeDoc() to free the resulting tree

    +

    Includes:

    + +

    Uses:

    + +

    Usage:

    +

    parse1 test1.xml

    +

    Author: Daniel Veillard

    +

    parse2.c: Parse and validate an XML file to a tree and free the result

    +

    Create a parser context for an XML file, then parse and validate the file, creating a tree, check the validation result and xmlFreeDoc() to free the resulting tree.

    +

    Includes:

    + +

    Uses:

    + +

    Usage:

    +

    parse2 test2.xml

    +

    Author: Daniel Veillard

    +

    parse3.c: Parse an XML document in memory to a tree and free it

    +

    Demonstrate the use of xmlReadMemory() to read an XML file into a tree and xmlFreeDoc() to free the resulting tree

    +

    Includes:

    + +

    Uses:

    + +

    Usage:

    +

    parse3

    +

    Author: Daniel Veillard

    +

    parse4.c: Parse an XML document chunk by chunk to a tree and free it

    +

    Demonstrate the use of xmlCreatePushParserCtxt() and xmlParseChunk() to read an XML file progressively into a tree and xmlFreeDoc() to free the resulting tree

    +

    Includes:

    + +

    Uses:

    + +

    Usage:

    +

    parse4 test3.xml

    +

    Author: Daniel Veillard

    +

    Tree Examples

    +

    tree1.c: Navigates a tree to print element names

    +

    Parse a file to a tree, use xmlDocGetRootElement() to get the root element, then walk the document and print all the element name in document order.

    +

    Includes:

    + +

    Uses:

    + +

    Usage:

    +

    tree1 filename_or_URL

    +

    Author: Dodji Seketeli

    +

    tree2.c: Creates a tree

    +

    Shows how to create document, nodes and dump it to stdout or file.

    +

    Includes:

    + +

    Uses:

    + +

    Usage:

    +

    tree2 <filename> -Default output: stdout

    +

    Author: Lucas Brasilino <brasilino@recife.pe.gov.br>

    +

    XPath Examples

    +

    xpath1.c: Evaluate XPath expression and prints result node set.

    +

    Shows how to evaluate XPath expression and register known namespaces in XPath context.

    +

    Includes:

    + +

    Uses:

    + +

    Usage:

    +

    xpath1 <xml-file> <xpath-expr> [<known-ns-list>]

    +

    Author: Aleksey Sanin

    +

    xpath2.c: Load a document, locate subelements with XPath, modify said elements and save the resulting document.

    +

    Shows how to make a full round-trip from a load/edit/save

    +

    Includes:

    + +

    Uses:

    + +

    Usage:

    +

    xpath2 <xml-file> <xpath-expr> <new-value>

    +

    Author: Aleksey Sanin and Daniel Veillard

    +

    xmlReader Examples

    +

    reader1.c: Parse an XML file with an xmlReader

    +

    Demonstrate the use of xmlReaderForFile() to parse an XML file and dump the information about the nodes found in the process. (Note that the XMLReader functions require libxml2 version later than 2.6.)

    +

    Includes:

    + +

    Uses:

    + +

    Usage:

    +

    reader1 <filename>

    +

    Author: Daniel Veillard

    +

    reader2.c: Parse and validate an XML file with an xmlReader

    +

    Demonstrate the use of xmlReaderForFile() to parse an XML file validating the content in the process and activating options like entities substitution, and DTD attributes defaulting. (Note that the XMLReader functions require libxml2 version later than 2.6.)

    +

    Includes:

    + +

    Uses:

    + +

    Usage:

    +

    reader2 <valid_xml_filename>

    +

    Author: Daniel Veillard

    +

    reader3.c: Show how to extract subdocuments with xmlReader

    +

    Demonstrate the use of xmlTextReaderPreservePattern() to parse an XML file with the xmlReader while collecting only some subparts of the document. (Note that the XMLReader functions require libxml2 version later than 2.6.)

    +

    Includes:

    + +

    Uses:

    + +

    Usage:

    +

    reader3

    +

    Author: Daniel Veillard

    +

    reader4.c: Parse multiple XML files reusing an xmlReader

    +

    Demonstrate the use of xmlReaderForFile() and xmlReaderNewFile to parse XML files while reusing the reader object and parser context. (Note that the XMLReader functions require libxml2 version later than 2.6.)

    +

    Includes:

    + +

    Uses:

    + +

    Usage:

    +

    reader4 <filename> [ filename ... ]

    +

    Author: Graham Bennett

    +

    xmlWriter Examples

    +

    testWriter.c: use various APIs for the xmlWriter

    +

    tests a number of APIs for the xmlWriter, especially the various methods to write to a filename, to a memory buffer, to a new document, or to a subtree. It shows how to do encoding string conversions too. The resulting documents are then serialized.

    +

    Includes:

    + +

    Uses:

    + +

    Usage:

    +

    testWriter

    +

    Author: Alfred Mickautsch

    + + diff --git a/doc/examples/index.py b/doc/examples/index.py index ed1df59c..fa8b3970 100755 --- a/doc/examples/index.py +++ b/doc/examples/index.py @@ -245,8 +245,8 @@ index.html: examples.xml examples.xsl endif install-data-local: - $(MKDIR_P) $(DESTDIR)$(HTML_DIR) - -$(INSTALL) -m 0644 $(srcdir)/*.html $(srcdir)/*.c $(srcdir)/*.xml $(srcdir)/*.xsl $(srcdir)/*.res $(DESTDIR)$(HTML_DIR) + $(MKDIR_P) $(DESTDIR)$(HTML_DIR)/examples + -$(INSTALL) -m 0644 $(srcdir)/*.html $(srcdir)/*.c $(srcdir)/*.xml $(srcdir)/*.xsl $(srcdir)/*.res $(DESTDIR)$(HTML_DIR)/examples/ clean-local: test -f Makefile.am || rm -f test?.xml