xidel
Command line tool to download and extract data from HTML/XML pages or JSON-APIs, using CSS, XPath 3.0, XQuery 3.0, JSONiq or pattern matching. It can also create new or transformed XML/HTML/JSON documents.
File Explorer
- main.yml
- download-dependencies.sh
- setup-fpc-cfg.sh
- format
- changelog
- compat
- conffiles
- control
- copyright
- docs
- rules
- xidel.install
- build.deb.sh
- xidel.1
- xidel.dsc
- xidel.spec
- append
- append-binary
- append-text
- append-text-lines
- children
- copy
- create-dir
- create-temp-dir
- create-temp-file
- current-dir-tests
- delete
- exists
- init
- is-dir
- is-file
- last-modified
- list-recurse
- list-self
- move
- name
- parent
- path-to-native
- path-to-uri
- read-binary
- read-text
- read-text-lines
- separators
- size
- temp-dir
- write
- write-binary1
- write-binary2
- write-text-lines
- default
- default-boolean
- default-dotnotation
- default-equals
- default-literals
- default-null
- default-stringvalue
- deprecated
- deprecated-boolean
- deprecated-dotnotation
- deprecated-equals
- deprecated-literals
- deprecated-null
- deprecated-stringvalue
- jsoniq
- jsoniq-boolean
- jsoniq-dotnotation
- jsoniq-equals
- jsoniq-literals
- jsoniq-null
- jsoniq-stringvalue
- standard
- standard-boolean
- standard-dotnotation
- standard-equals
- standard-literals
- standard-null
- standard-stringvalue
- 2urls
- 2urls2read
- addition
- adhoc-json
- adhoc1
- adhoc10
- adhoc11
- adhoc2
- adhoc3
- adhoc4
- adhoc4b
- adhoc5
- adhoc5c
- adhoc5d
- adhoc6
- adhoc7
- adhoc8
- adhoc9
- adhoc9b
- adhoc9c
- bash-combining1
- bash-combining2
- bash-combining3
- bash-escape1
- bash-escape2
- bash-escape3
- bash-escape4
- bash-escape5
- bash-escape6
- bash-escape7
- bash-escape8
- bash-json
- bash1
- bash2
- bash3
- bash4
- bash4b
- bash5
- bash5d
- bash6
- bash7
- bash8
- bash9
- bash9b
- bash9c
- cmd1
- cmd2
- cmd3
- cmd4
- cmd7
- cmd8
- cmd9
- css
- css2
- direct
- direct_hidden_vars1
- direct_hidden_vars2
- direct_hidden_vars3
- division
- divisionInt
- dtd-broken
- dtd-working
- encodingJson
- eval
- file-init
- followCustomErrorHandling
- foobarmeth
- foobarmeth2
- get1
- headers
- html-json
- htmlraw1
- htmlraw1b
- htmlraw2
- htmlraw2b
- htmlraw3
- htmlraw4
- htmlraw4b
- htmlraw5
- htmlraw5b
- htmlraw5c
- htmlraw5d
- htmlraw6
- htmlraw7
- htmlraw8
- htmlraw9
- htmlraw9c
- inputformatAutoA
- inputformatAutoC
- inputformatAutoJson
- inputformatHtml
- inputformatXml
- json1
- json10
- json1b
- json2
- json2b
- json3
- json4
- json4b
- json5
- json5c
- json5d
- json6
- json7
- json8
- json8p
- json9
- json9b
- json9bp
- json9p
- jsonassign
- jsonassignarray
- jsonExtensions
- jsonmultiassign
- jsonreassign
- jsonw-json
- levelcloned
- linebreaksHTMLOutput-NoDecl-Indent
- linebreaksXMLElementNodes-Decl-Indent
- linebreaksXMLElementNodes-Decl-NoIndent
- linebreaksXMLElementNodes-NoDecl-Indent
- linebreaksXMLElementNodes-NoDecl-NoIndent
- linebreaksXMLOutput-ElementNodes-Decl-Indent
- linebreaksXMLOutput-ElementNodes-Decl-NoIndent
- linebreaksXMLOutput-ElementNodes-NoDecl-Indent
- linebreaksXMLOutput-ElementNodes-NoDecl-NoIndent
- linebreaksXMLOutput-input-newline-NoDecl-NoIndent
- maxlevel0
- maxlevel1
- maxlevel2
- maxlevel3
- moduleFunc1
- moduleFunc2
- moduleFuncImport
- moduleFuncImport2
- moduleFuncImportGlobalMut
- moduleFuncImportGlobalMut2
- moduleFuncImportGlobalMut3
- moduleFuncImportRel
- moduleVars
- modulo
- moreActions
- moreActions1
- moreActions2
- moreActions3
- moreActionsLocalPattern
- multipage
- multipage2
- multipage3
- multipage4
- multipageChoose
- multipageChoose3
- multipageChoose4
- multipageChooseO1
- multipageChooseO2
- multipageChooseO3
- multipageIf0
- multipageIf1
- multipageonline
- multipageonline2
- multipageShort
- multipageShortF
- multipageTry
- multipageTryHttp
- multipageVariable
- multipart1
- multipart2
- multiplication
- namespace1
- namespace2
- nest0a
- nest0b
- nest0c
- nest10
- nest10b
- nest10c
- nest1a
- nest1ab
- nest1ab2
- nest1ab3
- nest1ab4
- nest1ab5
- nest1b
- nest2a
- nest2b
- nest2c
- nest2d
- nest2e
- nest3a
- nest3b
- nest4
- nest5a
- nest5b
- nest5c
- nest6a
- nest6b
- nest6c
- nest7
- nest8
- nest8b
- nest9a
- nest9b
- nest9c
- novar
- novar2
- optadhoc
- opthtml
- optxml
- pinode-html
- pinode-xml
- pinode-xml-strict
- post1a
- post1b
- post2
- post3
- post3b
- post3c
- post4
- post4b
- post4c
- post4d
- post5
- post6
- post6b
- post6c
- post7
- post8
- put1a
- put1b
- read
- regression_doclocal
- regression_doconline
- regression_entity1a
- regression_entity1b
- regression_entity1c
- regression_entity2
- regression_entity3a
- regression_entity3b
- regression_entity3c
- regression_entity3d
- regression_htmlparse
- regression_multipage1
- regression_multipage2
- regression_multipage3
- regression_multipage3b
- regression_mutablevariable1
- regression_mutablevariable2
- regression_object1
- regression_object2
- regression_text1a
- regression_text1b
- regression_text1c
- regression_text1d
- regression_text1e
- repetitionoff
- repetitionon
- separator-adhoc
- separator-html
- separator-html2
- separator-xml
- separator-xml2
- sibling1a
- sibling1b
- sibling1c
- sibling1d
- sibling1e
- sibling2
- sibling2b
- sibling3a
- sibling3b
- sibling3c
- sibling4
- stdin1
- stdin2
- subtraction
- system
- t1
- te
- tef
- tefe
- template
- texml
- tfe
- tfe2
- tfe3
- tfe4
- tfe5
- utf8
- var1
- var2
- var3
- varenviron
- varenviron2
- varenviron3
- variableActions
- varlogAB
- varlogAC
- varlogBC
- varmix
- varmixb
- varnoenviron
- varraw
- varresult
- varurlhostpath
- xml-json
- xml1
- xml10
- xml1b
- xml2
- xml2-json
- xml2b
- xml3
- xml4
- xml4b
- xml5
- xml5c
- xml5d
- xml6
- xml7
- xml8
- xml9
- xml9b
- xmlraw1
- xmlraw10
- xmlraw11
- xmlraw1b
- xmlraw1c
- xmlraw2
- xmlraw2b
- xmlraw3
- xmlraw4
- xmlraw4b
- xmlraw5
- xmlraw5b
- xmlraw5c
- xmlraw5d
- xmlraw6
- xmlraw7
- xmlraw8
- xmlraw9
- xmlraw9b
- xmlraw9c
- xmlw-json
- xmlw2-json
- xpath1
- xpath10
- xpath2
- xpath3
- xpath3x
- xpath4
- xpath5
- xpath6
- xpath7
- xpath8
- xpath9
- xquery
- xquery4
- xquery5
- xquery6
- xquerypath
- test.xq
- download.sh
- a.xml
- b.xml
- b1.xml
- b2.xml
- c.xml
- c1.xml
- c2.xml
- d.xml
- data.json
- data2.json
- downloadTest.sh
- downloadTests.sh
- dpre.xml
- dtd.xml
- encodingLatin1.json
- encodingUtf8.json
- input-newline.xml
- module.xq
- module2.xqm
- more.actions
- more.local.pattern
- patterntit.xml
- test.sh
- tests-file-module.sh
- tests.sh
- variable.actions
- weirdpinode.xml
- zorbajsoniq.sh
- index.html
- LICENSE
- test.js
- xquery.js
- functions-arguments-names-file.xml
- functions-x.xml
- functions.sh
- functions.xml
- functions.xq
- xidel.css
- xidel.php
- xidel_redirect.html
- xidelecho.php
- xidelecho.pl
- .hgtags
- .travis.yml
- _hg.filemap
- build.sh
- cgi.css
- cgi.js
- changelog
- COPYING
- install.sh
- manage.sh
- printUsage.inc
- README.md
- readme.txt
- xidel.lpi
- xidel.pas
- xidelbase.pas
- xidelcgi.lpi
- xidelcgi.lpr
- xidelcrt.pas
# Use via CDN
jsDelivrjsDelivr serves any public GitHub repository as a CDN with zero setup. Pick a version and a file to get a ready-to-paste link and snippet.
Link
Example
Command Glossary
Commands referenced in this DOCs, explained below.
xidel
View Details ▼
xidel
Download and extract data from HTML/XML pages as well as JSON APIs.
xidel {{https://www.google.com/search?q=test}} {{[-e|--extract]}} "//a/extract(@href, 'url[?]q=([^&]+)&', 1)[. != '']"
Print all URLs found by a Google search:
xidel {{https://www.google.com/search?q=test}} {{[-f|--follow]}} "{{//a/extract(@href, 'url[?]q=([^&]+)&', 1)[. != '']}}" {{[-e|--extract]}} {{//title}} --download '{{{$host}/}}'
Print the title of all pages found by a Google search and download them:
xidel {{https://example.org}} {{[-f|--follow]}} {{//a}} {{[-e|--extract]}} {{//title}}
Follow all links on a page and print the titles, with XPath:
// repository documentation
Was this content helpful?
(0 ratings)
