Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/r-lib/xml2
Bindings to libxml2
https://github.com/r-lib/xml2
libxml2 r xml
Last synced: 4 days ago
JSON representation
Bindings to libxml2
- Host: GitHub
- URL: https://github.com/r-lib/xml2
- Owner: r-lib
- License: other
- Created: 2015-02-12T19:43:52.000Z (almost 10 years ago)
- Default Branch: main
- Last Pushed: 2024-10-21T13:38:22.000Z (about 2 months ago)
- Last Synced: 2024-12-01T00:02:02.247Z (11 days ago)
- Topics: libxml2, r, xml
- Language: R
- Homepage: https://xml2.r-lib.org/
- Size: 13.7 MB
- Stars: 220
- Watchers: 20
- Forks: 81
- Open Issues: 60
-
Metadata Files:
- Readme: README.Rmd
- Changelog: NEWS.md
- Contributing: .github/CONTRIBUTING.md
- License: LICENSE
- Code of conduct: .github/CODE_OF_CONDUCT.md
- Codeowners: .github/CODEOWNERS
- Support: .github/SUPPORT.md
Awesome Lists containing this project
- jimsghstars - r-lib/xml2 - Bindings to libxml2 (R)
README
---
output: github_document
---```{r, include = FALSE}
knitr::opts_chunk$set(
collapse = TRUE,
comment = "#>",
fig.path = "man/figures/README-",
out.width = "100%"
)
```# xml2
[![CRAN_Status_Badge](https://www.r-pkg.org/badges/version/xml2)](https://cran.r-project.org/package=xml2)
[![Codecov test coverage](https://codecov.io/gh/r-lib/xml2/branch/master/graph/badge.svg)](https://app.codecov.io/gh/r-lib/xml2?branch=main)
[![R build status](https://github.com/r-lib/xml2/workflows/R-CMD-check/badge.svg)](https://github.com/r-lib/xml2/actions)
[![R-CMD-check](https://github.com/r-lib/xml2/actions/workflows/R-CMD-check.yaml/badge.svg)](https://github.com/r-lib/xml2/actions/workflows/R-CMD-check.yaml)The xml2 package is a binding to [libxml2](http://xmlsoft.org), making it easy to work with HTML and XML from R. The API is somewhat inspired by [jQuery](https://jquery.com).
## Installation
You can install xml2 from CRAN,
```r
install.packages("xml2")
```or you can install the development version from github, using `pak`:
```r
# install.packages("pak")
pak::pak("r-lib/xml2")
```## Usage
```r
library(xml2)
x <- read_xml(" text ")
xxml_name(x)
xml_children(x)
xml_text(x)
xml_find_all(x, ".//baz")h <- read_html("
Hi !")
h
xml_name(h)
xml_text(h)
```There are three key classes:
* `xml_node`: a single node in a document.
* `xml_doc`: the complete document. Acting on a document is usually the same
as acting on the root node of the document.* `xml_nodeset`: a __set__ of nodes within the document. Operations on
`xml_nodeset`s are vectorised, apply the operation over each node in the set.## Compared to the XML package
xml2 has similar goals to the XML package. The main differences are:
* xml2 takes care of memory management for you. It will automatically
free the memory used by an XML document as soon as the last reference
to it goes away.* xml2 has a very simple class hierarchy so you don't need to think about exactly
what type of object you have, xml2 will just do the right thing.* More convenient handling of namespaces in Xpath expressions - see `xml_ns()`
and `xml_ns_strip()` to get started.## Code of Conduct
Please note that the xml2 project is released with a [Contributor Code of Conduct](https://xml2.r-lib.org/CODE_OF_CONDUCT.html). By contributing to this project, you agree to abide by its terms.