A simpler XML tool


 
Thread Tools Search this Thread
The Lounge What is on Your Mind? A simpler XML tool
# 1  
Old 10-18-2011
A simpler XML tool

We've been getting a lot of XML questions lately, and I suspect it's only going to get worse better ... Normal shell utilities just can't handle it and the "proper" solutions, do-everything perl modules or things like xmlstarlet, just make my head ache.

Started coding something tonight. What the mockup can do, right now:

Code:
$ wget -q -O - "http://rss.cnn.com/rss/cnn_topstories.rss" | ./mox item.title 2> /dev/null

<title>Israeli soldier freed after 5 years</title>
<title>Expert: Long road ahead for Shalit</title>
<title>Malaria vaccine tantalizingly close</title>
<title>Clinton makes unannounced Libya trip</title>
<title>Body may be missing Maryland boy</title>
<title>Disabled captives case may grow</title>

$

I'm hoping to eventually make it a language to match and rearrange xml, with a built-in event loop sort of like awk's.
# 2  
Old 10-21-2011
Can you provide a little bit more background and explain the objective? What do you mean by "handle": parsing, displaying, selecting data elements and/or attributes, other?
# 3  
Old 10-21-2011
I'm trying to build a simple XML-manipulation tool. Very simple -- no DTD -- possibly not even validating.

The point is to easily match and extract and rearrange tags from inside nested context. "item.title" there extracts <title> tags and any contents in them, only when found directly inside <item> tags. You could do "^html.head.title" to extract title attributes from webpages, "table" to extract anything inside tables, and maybe "tag:key=value" to match tags where key='value' and anything inside.

I'm still thinking on how exactly to work the syntax but hope this explains the idea.
# 4  
Old 10-21-2011
Quote:
Originally Posted by Corona688
I'm still thinking on how exactly to work the syntax but hope this explains the idea.
Use XPath syntax (or rather a subset)?
# 5  
Old 10-21-2011
Perhaps. Xpath looks verbose, ugly, complicated, and redundant though. It's not really meant for streams.
# 6  
Old 10-22-2011
Great initiative. Let us know how far you are getting and whether you are prepared to release in the public domain.
# 7  
Old 10-22-2011
Just to add that a special GNU awk implementation XMLgawk exists.
This User Gave Thanks to radoulov For This Post:
Login or Register to Ask a Question

Previous Thread | Next Thread

8 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Simpler crontab entry to execute pgm on last day of the month

The following bash command line works for the last day of the month. Test by replacing the 1 with tomorrows day of month number && echo "Day before tomorrow"Can it be used within crontab? As * * 28-31 * * && echo "Today ls last day of month" >>/tmp/crontabtestI tried to test crontab with... (1 Reply)
Discussion started by: lsatenstein
1 Replies

2. Shell Programming and Scripting

Need simpler version of these commands

Hi all, I am trying to grep a file with the word grand and get all the fields.. Then replace multiple spaces with single space and then get 8 th field and add all these numbers . I am able to do it but with so amny commands which i feel can be done in a simpler way Please let me know if... (4 Replies)
Discussion started by: Hypesslearner
4 Replies

3. Shell Programming and Scripting

Need simpler way to find all my disk space utilization using df -h

Hi All, I am using SSH Tectia terminal to get the disk space utilization of a particular folder /opt/logs in all the servers one by one using the command df -h and looking through the list of folders manually to get /opt/logs folder disk space used percentage . The problem here is , it... (2 Replies)
Discussion started by: aakhan2011
2 Replies

4. UNIX for Dummies Questions & Answers

Simpler next month year program

I have created this program to get the next month and year. Is there a simpler way. #!/bin/ksh string=`cat Date.txt` year=`echo $string | cut -c 1-4` month=`echo $string | cut -c 5-6` echo $year$month mon=`expr $month + 1` if ; then mon=0$mon echo $mon fi if ; then month=01 ... (2 Replies)
Discussion started by: w020637
2 Replies

5. Shell Programming and Scripting

A simpler way to do this (save a list of files based on part of their name)

Hello, I have a script that checks every file with a specific extension in a specific directory. The file names contain some numerical output and I am recording the file names with the best n outcomes. The script finds all files in the directory with the extension .out.txt and uses awk to... (12 Replies)
Discussion started by: LMHmedchem
12 Replies

6. Shell Programming and Scripting

Is there a simpler way to validate user input for float?

I'm trying to only read price (FLOAT (i.e 1.10, 3.14, etc etc)) If the input is just an integer, I will add a .00 behind. (i.e 3 becomes 3.00 , 20 becomes 20.00) If the input is without 2 decimal places, I'll add a 0. (i.e 3.1 becomes 3.10) I tried using the below code, it works but I don't... (6 Replies)
Discussion started by: andylbh
6 Replies

7. Programming

How to simplify this perl script to a cleaner simpler look?

my $branch_email_e = $FORM{r_Branch}; my $hostbranch_email_e = $FORM{r_Host_Branch}; my $branch_email_f = $FORM{r_Direction_generale}; my $hostbranch_email_f = $FORM{r_Direction_generale_daccueil}; my $branch_realname_e = ''; my $branch_realname_f = ''; ... (4 Replies)
Discussion started by: callyvan
4 Replies

8. Shell Programming and Scripting

Is there a simpler way to achieve this?

Hi all I have the following which is part of a larger interactive script for adding virtual hosts to Apache's configuration (it was built for non-technical administrators). I'm curious as to whether there is a simpler way of achieving the same thing. All it does is look into the... (3 Replies)
Discussion started by: mlott
3 Replies
Login or Register to Ask a Question