Repository files navigation

libxml++
--------
libxml++ (a.k.a. libxmlplusplus) provides a C++ interface to XML files. It uses
libxml2 to access the XML files, and in order to configure libxml++ you must
have both libxml2 and pkg-config installed.
To get the latest version of libxml++, see
https://libxmlplusplus.github.io/libxmlplusplus/
To contact the developers, send e-mail to the mailing list at
http://mail.gnome.org/mailman/listinfo/libxmlplusplus-list
We welcome patches, but it helps to discuss them first.
See the examples directory for example code.
Use pkg-config to discover the necessary include and linker arguments. For instance,
pkg-config libxml++-5.0 --cflags --libs
If you build with Autotools, ideally you would use PKG_CHECK_MODULES in your
configure.ac file.
# Building
Whenever possible, you should use the official binary packages approved by the
supplier of your operating system, such as your Linux distribution.
## Building on Windows
See MSVC_NMake/README
## Building from a release tarball
Extract the tarball and go to the extracted directory:
$ tar xf libxml++-@LIBXMLXX_VERSION@.tar.xz
$ cd libxml++-@LIBXMLXX_VERSION@
It's easiest to build with Meson, if the tarball was made with Meson,
and to build with Autotools, if the tarball was made with Autotools.
Then you don't have to use maintainer-mode.
How do you know how the tarball was made? If it was made with Meson,
it contains files in untracked/docs/ and other subdirectories
of untracked/.
### Building from a tarball with Meson
Don't call the builddir 'build'. There is a directory called 'build' with
files used by Autotools.
$ meson --prefix /some_directory --libdir lib your_builddir .
$ cd your_builddir
If the tarball was made with Autotools, you must enable maintainer-mode:
$ meson configure -Dmaintainer-mode=true
Then, regardless of how the tarball was made:
$ ninja
$ ninja install
You can run the tests like so:
$ ninja test
### Building from a tarball with Autotools
If the tarball was made with Autotools:
$ ./configure --prefix=/some_directory
If the tarball was made with Meson, you must enable maintainer-mode:
$ ./autogen.sh --prefix=/some_directory
Then, regardless of how the tarball was made:
$ make
$ make install
You can build the examples and tests, and run the tests, like so:
$ make check
## Building from git
Building from git can be difficult so you should prefer building from
a release tarball unless you need to work on the libxml++ code itself.
jhbuild can be a good help
https://gitlab.gnome.org/GNOME/jhbuildhttps://wiki.gnome.org/Projects/Jhbuild
### Building from git with Meson
Maintainer-mode is enabled by default when you build from a git clone.
Don't call the builddir 'build'. There is a directory called 'build' with
files used by Autotools.
$ meson --prefix /some_directory --libdir lib your_builddir .
$ cd your_builddir
$ ninja
$ ninja install
You can run the tests like so:
$ ninja test
You can create a tarball like so:
$ ninja dist
### Building from git with Autotools
$ ./autogen.sh --prefix=/some_directory
$ make
$ make install
You can build the examples and tests, and run the tests, like so:
$ make check
You can create a tarball like so:
$ make distcheck
or
$ make dist

About

This library provides a C++ interface to XML files. It uses libxml2 to access the XML files.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

libxml++
--------
libxml++ (a.k.a. libxmlplusplus) provides a C++ interface to XML files. It uses
libxml2 to access the XML files, and in order to configure libxml++ you must
have both libxml2 and pkg-config installed.
To get the latest version of libxml++, see
https://libxmlplusplus.github.io/libxmlplusplus/
To contact the developers, send e-mail to the mailing list at
http://mail.gnome.org/mailman/listinfo/libxmlplusplus-list
We welcome patches, but it helps to discuss them first.
See the examples directory for example code.
Use pkg-config to discover the necessary include and linker arguments. For instance,
pkg-config libxml++-5.0 --cflags --libs
If you build with Autotools, ideally you would use PKG_CHECK_MODULES in your
configure.ac file.
# Building
Whenever possible, you should use the official binary packages approved by the
supplier of your operating system, such as your Linux distribution.
## Building on Windows
See MSVC_NMake/README
## Building from a release tarball
Extract the tarball and go to the extracted directory:
$ tar xf libxml++-@LIBXMLXX_VERSION@.tar.xz
$ cd libxml++-@LIBXMLXX_VERSION@
It's easiest to build with Meson, if the tarball was made with Meson,
and to build with Autotools, if the tarball was made with Autotools.
Then you don't have to use maintainer-mode.
How do you know how the tarball was made? If it was made with Meson,
it contains files in untracked/docs/ and other subdirectories
of untracked/.
### Building from a tarball with Meson
Don't call the builddir 'build'. There is a directory called 'build' with
files used by Autotools.
$ meson --prefix /some_directory --libdir lib your_builddir .
$ cd your_builddir
If the tarball was made with Autotools, you must enable maintainer-mode:
$ meson configure -Dmaintainer-mode=true
Then, regardless of how the tarball was made:
$ ninja
$ ninja install
You can run the tests like so:
$ ninja test
### Building from a tarball with Autotools
If the tarball was made with Autotools:
$ ./configure --prefix=/some_directory
If the tarball was made with Meson, you must enable maintainer-mode:
$ ./autogen.sh --prefix=/some_directory
Then, regardless of how the tarball was made:
$ make
$ make install
You can build the examples and tests, and run the tests, like so:
$ make check
## Building from git
Building from git can be difficult so you should prefer building from
a release tarball unless you need to work on the libxml++ code itself.
jhbuild can be a good help
https://gitlab.gnome.org/GNOME/jhbuildhttps://wiki.gnome.org/Projects/Jhbuild
### Building from git with Meson
Maintainer-mode is enabled by default when you build from a git clone.
Don't call the builddir 'build'. There is a directory called 'build' with
files used by Autotools.
$ meson --prefix /some_directory --libdir lib your_builddir .
$ cd your_builddir
$ ninja
$ ninja install
You can run the tests like so:
$ ninja test
You can create a tarball like so:
$ ninja dist
### Building from git with Autotools
$ ./autogen.sh --prefix=/some_directory
$ make
$ make install
You can build the examples and tests, and run the tests, like so:
$ make check
You can create a tarball like so:
$ make distcheck
or
$ make dist

About

This library provides a C++ interface to XML files. It uses libxml2 to access the XML files.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

libxml++
--------
libxml++ (a.k.a. libxmlplusplus) provides a C++ interface to XML files. It uses
libxml2 to access the XML files, and in order to configure libxml++ you must
have both libxml2 and pkg-config installed.
To get the latest version of libxml++, see
https://libxmlplusplus.github.io/libxmlplusplus/
To contact the developers, send e-mail to the mailing list at
http://mail.gnome.org/mailman/listinfo/libxmlplusplus-list
We welcome patches, but it helps to discuss them first.
See the examples directory for example code.
Use pkg-config to discover the necessary include and linker arguments. For instance,
pkg-config libxml++-5.0 --cflags --libs
If you build with Autotools, ideally you would use PKG_CHECK_MODULES in your
configure.ac file.
# Building
Whenever possible, you should use the official binary packages approved by the
supplier of your operating system, such as your Linux distribution.
## Building on Windows
See MSVC_NMake/README
## Building from a release tarball
Extract the tarball and go to the extracted directory:
$ tar xf libxml++-@LIBXMLXX_VERSION@.tar.xz
$ cd libxml++-@LIBXMLXX_VERSION@
It's easiest to build with Meson, if the tarball was made with Meson,
and to build with Autotools, if the tarball was made with Autotools.
Then you don't have to use maintainer-mode.
How do you know how the tarball was made? If it was made with Meson,
it contains files in untracked/docs/ and other subdirectories
of untracked/.
### Building from a tarball with Meson
Don't call the builddir 'build'. There is a directory called 'build' with
files used by Autotools.
$ meson --prefix /some_directory --libdir lib your_builddir .
$ cd your_builddir
If the tarball was made with Autotools, you must enable maintainer-mode:
$ meson configure -Dmaintainer-mode=true
Then, regardless of how the tarball was made:
$ ninja
$ ninja install
You can run the tests like so:
$ ninja test
### Building from a tarball with Autotools
If the tarball was made with Autotools:
$ ./configure --prefix=/some_directory
If the tarball was made with Meson, you must enable maintainer-mode:
$ ./autogen.sh --prefix=/some_directory
Then, regardless of how the tarball was made:
$ make
$ make install
You can build the examples and tests, and run the tests, like so:
$ make check
## Building from git
Building from git can be difficult so you should prefer building from
a release tarball unless you need to work on the libxml++ code itself.
jhbuild can be a good help
https://gitlab.gnome.org/GNOME/jhbuildhttps://wiki.gnome.org/Projects/Jhbuild
### Building from git with Meson
Maintainer-mode is enabled by default when you build from a git clone.
Don't call the builddir 'build'. There is a directory called 'build' with
files used by Autotools.
$ meson --prefix /some_directory --libdir lib your_builddir .
$ cd your_builddir
$ ninja
$ ninja install
You can run the tests like so:
$ ninja test
You can create a tarball like so:
$ ninja dist
### Building from git with Autotools
$ ./autogen.sh --prefix=/some_directory
$ make
$ make install
You can build the examples and tests, and run the tests, like so:
$ make check
You can create a tarball like so:
$ make distcheck
or
$ make dist

About

This library provides a C++ interface to XML files. It uses libxml2 to access the XML files.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

libxml++
--------
libxml++ (a.k.a. libxmlplusplus) provides a C++ interface to XML files. It uses
libxml2 to access the XML files, and in order to configure libxml++ you must
have both libxml2 and pkg-config installed.
To get the latest version of libxml++, see
https://libxmlplusplus.github.io/libxmlplusplus/
To contact the developers, send e-mail to the mailing list at
http://mail.gnome.org/mailman/listinfo/libxmlplusplus-list
We welcome patches, but it helps to discuss them first.
See the examples directory for example code.
Use pkg-config to discover the necessary include and linker arguments. For instance,
pkg-config libxml++-5.0 --cflags --libs
If you build with Autotools, ideally you would use PKG_CHECK_MODULES in your
configure.ac file.
# Building
Whenever possible, you should use the official binary packages approved by the
supplier of your operating system, such as your Linux distribution.
## Building on Windows
See MSVC_NMake/README
## Building from a release tarball
Extract the tarball and go to the extracted directory:
$ tar xf libxml++-@LIBXMLXX_VERSION@.tar.xz
$ cd libxml++-@LIBXMLXX_VERSION@
It's easiest to build with Meson, if the tarball was made with Meson,
and to build with Autotools, if the tarball was made with Autotools.
Then you don't have to use maintainer-mode.
How do you know how the tarball was made? If it was made with Meson,
it contains files in untracked/docs/ and other subdirectories
of untracked/.
### Building from a tarball with Meson
Don't call the builddir 'build'. There is a directory called 'build' with
files used by Autotools.
$ meson --prefix /some_directory --libdir lib your_builddir .
$ cd your_builddir
If the tarball was made with Autotools, you must enable maintainer-mode:
$ meson configure -Dmaintainer-mode=true
Then, regardless of how the tarball was made:
$ ninja
$ ninja install
You can run the tests like so:
$ ninja test
### Building from a tarball with Autotools
If the tarball was made with Autotools:
$ ./configure --prefix=/some_directory
If the tarball was made with Meson, you must enable maintainer-mode:
$ ./autogen.sh --prefix=/some_directory
Then, regardless of how the tarball was made:
$ make
$ make install
You can build the examples and tests, and run the tests, like so:
$ make check
## Building from git
Building from git can be difficult so you should prefer building from
a release tarball unless you need to work on the libxml++ code itself.
jhbuild can be a good help
https://gitlab.gnome.org/GNOME/jhbuildhttps://wiki.gnome.org/Projects/Jhbuild
### Building from git with Meson
Maintainer-mode is enabled by default when you build from a git clone.
Don't call the builddir 'build'. There is a directory called 'build' with
files used by Autotools.
$ meson --prefix /some_directory --libdir lib your_builddir .
$ cd your_builddir
$ ninja
$ ninja install
You can run the tests like so:
$ ninja test
You can create a tarball like so:
$ ninja dist
### Building from git with Autotools
$ ./autogen.sh --prefix=/some_directory
$ make
$ make install
You can build the examples and tests, and run the tests, like so:
$ make check
You can create a tarball like so:
$ make distcheck
or
$ make dist

About

This library provides a C++ interface to XML files. It uses libxml2 to access the XML files.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

libxml++
--------
libxml++ (a.k.a. libxmlplusplus) provides a C++ interface to XML files. It uses
libxml2 to access the XML files, and in order to configure libxml++ you must
have both libxml2 and pkg-config installed.
To get the latest version of libxml++, see
https://libxmlplusplus.github.io/libxmlplusplus/
To contact the developers, send e-mail to the mailing list at
http://mail.gnome.org/mailman/listinfo/libxmlplusplus-list
We welcome patches, but it helps to discuss them first.
See the examples directory for example code.
Use pkg-config to discover the necessary include and linker arguments. For instance,
pkg-config libxml++-5.0 --cflags --libs
If you build with Autotools, ideally you would use PKG_CHECK_MODULES in your
configure.ac file.
# Building
Whenever possible, you should use the official binary packages approved by the
supplier of your operating system, such as your Linux distribution.
## Building on Windows
See MSVC_NMake/README
## Building from a release tarball
Extract the tarball and go to the extracted directory:
$ tar xf libxml++-@LIBXMLXX_VERSION@.tar.xz
$ cd libxml++-@LIBXMLXX_VERSION@
It's easiest to build with Meson, if the tarball was made with Meson,
and to build with Autotools, if the tarball was made with Autotools.
Then you don't have to use maintainer-mode.
How do you know how the tarball was made? If it was made with Meson,
it contains files in untracked/docs/ and other subdirectories
of untracked/.
### Building from a tarball with Meson
Don't call the builddir 'build'. There is a directory called 'build' with
files used by Autotools.
$ meson --prefix /some_directory --libdir lib your_builddir .
$ cd your_builddir
If the tarball was made with Autotools, you must enable maintainer-mode:
$ meson configure -Dmaintainer-mode=true
Then, regardless of how the tarball was made:
$ ninja
$ ninja install
You can run the tests like so:
$ ninja test
### Building from a tarball with Autotools
If the tarball was made with Autotools:
$ ./configure --prefix=/some_directory
If the tarball was made with Meson, you must enable maintainer-mode:
$ ./autogen.sh --prefix=/some_directory
Then, regardless of how the tarball was made:
$ make
$ make install
You can build the examples and tests, and run the tests, like so:
$ make check
## Building from git
Building from git can be difficult so you should prefer building from
a release tarball unless you need to work on the libxml++ code itself.
jhbuild can be a good help
https://gitlab.gnome.org/GNOME/jhbuildhttps://wiki.gnome.org/Projects/Jhbuild
### Building from git with Meson
Maintainer-mode is enabled by default when you build from a git clone.
Don't call the builddir 'build'. There is a directory called 'build' with
files used by Autotools.
$ meson --prefix /some_directory --libdir lib your_builddir .
$ cd your_builddir
$ ninja
$ ninja install
You can run the tests like so:
$ ninja test
You can create a tarball like so:
$ ninja dist
### Building from git with Autotools
$ ./autogen.sh --prefix=/some_directory
$ make
$ make install
You can build the examples and tests, and run the tests, like so:
$ make check
You can create a tarball like so:
$ make distcheck
or
$ make dist

About

This library provides a C++ interface to XML files. It uses libxml2 to access the XML files.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

libxml++
--------
libxml++ (a.k.a. libxmlplusplus) provides a C++ interface to XML files. It uses
libxml2 to access the XML files, and in order to configure libxml++ you must
have both libxml2 and pkg-config installed.
To get the latest version of libxml++, see
https://libxmlplusplus.github.io/libxmlplusplus/
To contact the developers, send e-mail to the mailing list at
http://mail.gnome.org/mailman/listinfo/libxmlplusplus-list
We welcome patches, but it helps to discuss them first.
See the examples directory for example code.
Use pkg-config to discover the necessary include and linker arguments. For instance,
pkg-config libxml++-5.0 --cflags --libs
If you build with Autotools, ideally you would use PKG_CHECK_MODULES in your
configure.ac file.
# Building
Whenever possible, you should use the official binary packages approved by the
supplier of your operating system, such as your Linux distribution.
## Building on Windows
See MSVC_NMake/README
## Building from a release tarball
Extract the tarball and go to the extracted directory:
$ tar xf libxml++-@LIBXMLXX_VERSION@.tar.xz
$ cd libxml++-@LIBXMLXX_VERSION@
It's easiest to build with Meson, if the tarball was made with Meson,
and to build with Autotools, if the tarball was made with Autotools.
Then you don't have to use maintainer-mode.
How do you know how the tarball was made? If it was made with Meson,
it contains files in untracked/docs/ and other subdirectories
of untracked/.
### Building from a tarball with Meson
Don't call the builddir 'build'. There is a directory called 'build' with
files used by Autotools.
$ meson --prefix /some_directory --libdir lib your_builddir .
$ cd your_builddir
If the tarball was made with Autotools, you must enable maintainer-mode:
$ meson configure -Dmaintainer-mode=true
Then, regardless of how the tarball was made:
$ ninja
$ ninja install
You can run the tests like so:
$ ninja test
### Building from a tarball with Autotools
If the tarball was made with Autotools:
$ ./configure --prefix=/some_directory
If the tarball was made with Meson, you must enable maintainer-mode:
$ ./autogen.sh --prefix=/some_directory
Then, regardless of how the tarball was made:
$ make
$ make install
You can build the examples and tests, and run the tests, like so:
$ make check
## Building from git
Building from git can be difficult so you should prefer building from
a release tarball unless you need to work on the libxml++ code itself.
jhbuild can be a good help
https://gitlab.gnome.org/GNOME/jhbuildhttps://wiki.gnome.org/Projects/Jhbuild
### Building from git with Meson
Maintainer-mode is enabled by default when you build from a git clone.
Don't call the builddir 'build'. There is a directory called 'build' with
files used by Autotools.
$ meson --prefix /some_directory --libdir lib your_builddir .
$ cd your_builddir
$ ninja
$ ninja install
You can run the tests like so:
$ ninja test
You can create a tarball like so:
$ ninja dist
### Building from git with Autotools
$ ./autogen.sh --prefix=/some_directory
$ make
$ make install
You can build the examples and tests, and run the tests, like so:
$ make check
You can create a tarball like so:
$ make distcheck
or
$ make dist

About

This library provides a C++ interface to XML files. It uses libxml2 to access the XML files.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

libxml++
--------
libxml++ (a.k.a. libxmlplusplus) provides a C++ interface to XML files. It uses
libxml2 to access the XML files, and in order to configure libxml++ you must
have both libxml2 and pkg-config installed.
To get the latest version of libxml++, see
https://libxmlplusplus.github.io/libxmlplusplus/
To contact the developers, send e-mail to the mailing list at
http://mail.gnome.org/mailman/listinfo/libxmlplusplus-list
We welcome patches, but it helps to discuss them first.
See the examples directory for example code.
Use pkg-config to discover the necessary include and linker arguments. For instance,
pkg-config libxml++-5.0 --cflags --libs
If you build with Autotools, ideally you would use PKG_CHECK_MODULES in your
configure.ac file.
# Building
Whenever possible, you should use the official binary packages approved by the
supplier of your operating system, such as your Linux distribution.
## Building on Windows
See MSVC_NMake/README
## Building from a release tarball
Extract the tarball and go to the extracted directory:
$ tar xf libxml++-@LIBXMLXX_VERSION@.tar.xz
$ cd libxml++-@LIBXMLXX_VERSION@
It's easiest to build with Meson, if the tarball was made with Meson,
and to build with Autotools, if the tarball was made with Autotools.
Then you don't have to use maintainer-mode.
How do you know how the tarball was made? If it was made with Meson,
it contains files in untracked/docs/ and other subdirectories
of untracked/.
### Building from a tarball with Meson
Don't call the builddir 'build'. There is a directory called 'build' with
files used by Autotools.
$ meson --prefix /some_directory --libdir lib your_builddir .
$ cd your_builddir
If the tarball was made with Autotools, you must enable maintainer-mode:
$ meson configure -Dmaintainer-mode=true
Then, regardless of how the tarball was made:
$ ninja
$ ninja install
You can run the tests like so:
$ ninja test
### Building from a tarball with Autotools
If the tarball was made with Autotools:
$ ./configure --prefix=/some_directory
If the tarball was made with Meson, you must enable maintainer-mode:
$ ./autogen.sh --prefix=/some_directory
Then, regardless of how the tarball was made:
$ make
$ make install
You can build the examples and tests, and run the tests, like so:
$ make check
## Building from git
Building from git can be difficult so you should prefer building from
a release tarball unless you need to work on the libxml++ code itself.
jhbuild can be a good help
https://gitlab.gnome.org/GNOME/jhbuildhttps://wiki.gnome.org/Projects/Jhbuild
### Building from git with Meson
Maintainer-mode is enabled by default when you build from a git clone.
Don't call the builddir 'build'. There is a directory called 'build' with
files used by Autotools.
$ meson --prefix /some_directory --libdir lib your_builddir .
$ cd your_builddir
$ ninja
$ ninja install
You can run the tests like so:
$ ninja test
You can create a tarball like so:
$ ninja dist
### Building from git with Autotools
$ ./autogen.sh --prefix=/some_directory
$ make
$ make install
You can build the examples and tests, and run the tests, like so:
$ make check
You can create a tarball like so:
$ make distcheck
or
$ make dist

About

This library provides a C++ interface to XML files. It uses libxml2 to access the XML files.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

libxml++
--------
libxml++ (a.k.a. libxmlplusplus) provides a C++ interface to XML files. It uses
libxml2 to access the XML files, and in order to configure libxml++ you must
have both libxml2 and pkg-config installed.
To get the latest version of libxml++, see
https://libxmlplusplus.github.io/libxmlplusplus/
To contact the developers, send e-mail to the mailing list at
http://mail.gnome.org/mailman/listinfo/libxmlplusplus-list
We welcome patches, but it helps to discuss them first.
See the examples directory for example code.
Use pkg-config to discover the necessary include and linker arguments. For instance,
pkg-config libxml++-5.0 --cflags --libs
If you build with Autotools, ideally you would use PKG_CHECK_MODULES in your
configure.ac file.
# Building
Whenever possible, you should use the official binary packages approved by the
supplier of your operating system, such as your Linux distribution.
## Building on Windows
See MSVC_NMake/README
## Building from a release tarball
Extract the tarball and go to the extracted directory:
$ tar xf libxml++-@LIBXMLXX_VERSION@.tar.xz
$ cd libxml++-@LIBXMLXX_VERSION@
It's easiest to build with Meson, if the tarball was made with Meson,
and to build with Autotools, if the tarball was made with Autotools.
Then you don't have to use maintainer-mode.
How do you know how the tarball was made? If it was made with Meson,
it contains files in untracked/docs/ and other subdirectories
of untracked/.
### Building from a tarball with Meson
Don't call the builddir 'build'. There is a directory called 'build' with
files used by Autotools.
$ meson --prefix /some_directory --libdir lib your_builddir .
$ cd your_builddir
If the tarball was made with Autotools, you must enable maintainer-mode:
$ meson configure -Dmaintainer-mode=true
Then, regardless of how the tarball was made:
$ ninja
$ ninja install
You can run the tests like so:
$ ninja test
### Building from a tarball with Autotools
If the tarball was made with Autotools:
$ ./configure --prefix=/some_directory
If the tarball was made with Meson, you must enable maintainer-mode:
$ ./autogen.sh --prefix=/some_directory
Then, regardless of how the tarball was made:
$ make
$ make install
You can build the examples and tests, and run the tests, like so:
$ make check
## Building from git
Building from git can be difficult so you should prefer building from
a release tarball unless you need to work on the libxml++ code itself.
jhbuild can be a good help
https://gitlab.gnome.org/GNOME/jhbuildhttps://wiki.gnome.org/Projects/Jhbuild
### Building from git with Meson
Maintainer-mode is enabled by default when you build from a git clone.
Don't call the builddir 'build'. There is a directory called 'build' with
files used by Autotools.
$ meson --prefix /some_directory --libdir lib your_builddir .
$ cd your_builddir
$ ninja
$ ninja install
You can run the tests like so:
$ ninja test
You can create a tarball like so:
$ ninja dist
### Building from git with Autotools
$ ./autogen.sh --prefix=/some_directory
$ make
$ make install
You can build the examples and tests, and run the tests, like so:
$ make check
You can create a tarball like so:
$ make distcheck
or
$ make dist

About

This library provides a C++ interface to XML files. It uses libxml2 to access the XML files.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages