Solved

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

Posted on 2013-06-08
11
657 Views
Last Modified: 2013-06-12
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
Comment
Question by:lucavilla
  • 6
  • 5
11 Comments
 
LVL 26

Expert Comment

by:skullnobrains
ID: 39232163
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
 

Author Comment

by:lucavilla
ID: 39232171
is it for Windows command-line?  I need it working in Windows (7)
0
 
LVL 26

Expert Comment

by:skullnobrains
ID: 39232271
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
 

Author Comment

by:lucavilla
ID: 39232284
hmmm I would like something simpler, something that I can launch like this:

XPATHparser.exe input.html "//div[@id='myid']" > output.html
0
 
LVL 26

Expert Comment

by:skullnobrains
ID: 39232309
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
How to run any project with ease

Manage projects of all sizes how you want. Great for personal to-do lists, project milestones, team priorities and launch plans.
- Combine task lists, docs, spreadsheets, and chat in one
- View and edit from mobile/offline
- Cut down on emails

 

Author Comment

by:lucavilla
ID: 39232322
batch files or script files is not what I want.... I need a faster all-in-command-line solution...
0
 
LVL 26

Expert Comment

by:skullnobrains
ID: 39232336
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
 

Author Comment

by:lucavilla
ID: 39232898
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
 
LVL 26

Accepted Solution

by:
skullnobrains earned 500 total points
ID: 39234299
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
 

Author Closing Comment

by:lucavilla
ID: 39239676
...
0
 
LVL 26

Expert Comment

by:skullnobrains
ID: 39240362
feel free to post if you do try something and need help
0

Featured Post

Why You Should Analyze Threat Actor TTPs

After years of analyzing threat actor behavior, it’s become clear that at any given time there are specific tactics, techniques, and procedures (TTPs) that are particularly prevalent. By analyzing and understanding these TTPs, you can dramatically enhance your security program.

Join & Write a Comment

Introduction Got endorsements from your clients?  Great!  There is almost nothing better than word-of-mouth advertising.  But how can you do that on the internet?  Sure you can make a page for endorsement quotations and list them all, but who is …
Nothing in an HTTP request can be trusted, including HTTP headers and form data.  A form token is a tool that can be used to guard against request forgeries (CSRF).  This article shows an improved approach to form tokens, making it more difficult to…
It is a freely distributed piece of software for such tasks as photo retouching, image composition and image authoring. It works on many operating systems, in many languages.
This demo shows you how to set up the containerized NetScaler CPX with NetScaler Management and Analytics System in a non-routable Mesos/Marathon environment for use with Micro-Services applications.

760 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

17 Experts available now in Live!

Get 1:1 Help Now