• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 816
  • Last Modified:

how to extract an XPATH with the command-line BaseX parser?

I would to extract an XPATH defined part of html from an html file on my local disk using BaseX command line XML parser.
I found a very short documentation page here: http://docs.basex.org/wiki/Standalone_Mode

I tried but I'm lost...

What's the command-line syntax for doing this?
0
lucavilla
Asked:
lucavilla
  • 6
  • 5
1 Solution
 
skullnobrainsCommented:
i know it is not your question but given one of your other open threads, maybe this will be a goos starting point

http://www.semicomplete.com/projects/xpathtool/

read the inline doc, basically run something like this

./xpathtool.sh --pretty --indent '//element' << yourfile.xml
0
 
lucavillaAuthor Commented:
is it for Windows command-line?  I need it working in Windows (7)
0
 
skullnobrainsCommented:
no, but it should run fine in cygwin

xsltproc itself is available both for windows and through cygwin

it should be fairly easy to setup a .xslt file that performs an xpath query if you want to do it in windows

something like this should do. change the expression as required and use this as the xslt file to feed xsltproc. you can easily write a batch file that does that for you once you worked it out manually

<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
      xmlns:xsl="http://www.w3.org/1999/XSL/Transform" >

<xsl:template match="/">
    <xsl:copy-of select="YOUR XPATH EXPRESSION"/>
</xsl:template>

</xsl:stylesheet>

Open in new window

0
Cloud Class® Course: CompTIA Healthcare IT Tech

This course will help prep you to earn the CompTIA Healthcare IT Technician certification showing that you have the knowledge and skills needed to succeed in installing, managing, and troubleshooting IT systems in medical and clinical settings.

 
lucavillaAuthor Commented:
hmmm I would like something simpler, something that I can launch like this:

XPATHparser.exe input.html "//div[@id='myid']" > output.html
0
 
skullnobrainsCommented:
yes

either use xpathtool through cygwin (install cygwin, and xsltproc package, and copy the xpathtool script to your system)

OR

stick the above xslt in a batch file that does what you need.

first figure out how to run xsltproc manually with the file, then you'll be able to create the batch file. i'll help along the way
0
 
lucavillaAuthor Commented:
batch files or script files is not what I want.... I need a faster all-in-command-line solution...
0
 
skullnobrainsCommented:
is copy-paste 9 lines of code into a file, name it XPATHparser.bat, add and xpath comand in order to build your tool too much of a hassle ?

is installing a software too much ?

i'd be glad to help you if you at least give a try to either of the above suggestions. if not i can help you find a graphical tool that does that (jedit with the xml plugin for example)

some basic googling (xpath command line windows) also point here
http://xmlstar.sourceforge.net/docs.php
apparently the "sel" option will let you perform an xpath query
something like "xml sel //node <<input.xml > output.xml" should do
windows binaries are available in the download section
0
 
lucavillaAuthor Commented:
I need for a command-line solution because I need to add XPATH filtering ability in a commercial program (Website Watcher) that supports a simple scripting language where it can (at best, for this purpose) write a variable (eg. the html of a my given webpage) to a file, execute a command-line, read a file (eg. my wanted XPATH reduced page) to a variable... and continue with other processing over that variable...
I need to launch it from many different scripts and with many different XPATHs and having to write (and remember) lines of code every time I've to use it is not my best solution in my opinion.

This commercial program also supports regular expressions and indeed I always did the html filtering by well-refined regular expressions in a single line of code but now a crowd of developers tell me that XPATH is better... and simpler...
0
 
skullnobrainsCommented:
nobody asked you to remember a bunch of commands.

btw, batches and sh scripts ARE command-line tool that let you do a bunch of things including store commands so you do not have to remember them and retype them every time

try and understand the solutions that are given to you. actually try them. don't expect me to install and configure the tool on your computer. if that is what you want, better hire a guy than ask on a forum.

also note that you'd have had much better help by giving this iformation in the first place

---

i gave you
- a way to build a batch command line tool that does what you want
- a command line tool that can be installed on cygwin that does exactly what you require
- a command line tool (xmlstar) that does exactly what you require

there is nothing more a can do to help you unless you at least give a try to something.
xmlstar looks like the easiest : comes with an msi installer and good documentation.
0
 
lucavillaAuthor Commented:
...
0
 
skullnobrainsCommented:
feel free to post if you do try something and need help
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Cloud Class® Course: Microsoft Exchange Server

The MCTS: Microsoft Exchange Server 2010 certification validates your skills in supporting the maintenance and administration of the Exchange servers in an enterprise environment. Learn everything you need to know with this course.

  • 6
  • 5
Tackle projects and never again get stuck behind a technical roadblock.
Join Now