bash 解析XML的脚本

parseXmlFile.sh

#!/bin/bash

Usage()

{

echo "Usage: ./parseXmlFile.sh <target.xml>"

exit 1

}

list_all_entity()

{

local IFS=\>

while read -d \< ENTITY CONTENT

do

echo $ENTITY

done < $1

}

list_all_content()

{

local IFS=\>

while read -d \< ENTITY CONTENT

do

echo $CONTENT

done < $1

}

list_all_tag_name()

{

local IFS=\>

while read -d \< ENTITY CONTENT

do

TAG_NAME=${ENTITY%% *}

echo $TAG_NAME

done < $1

}

list_all_attributes()

{

local IFS=\>

while read -d \< ENTITY CONTENT

do

ATTRIBUTES=${ENTITY#* *}

echo $ATTRIBUTES

done < $1

}

getattr()

{

ATTR_PAIR=${1#*$2=\"}

echo "${ATTR_PAIR%%\"*}"

}

get_attributes_value()

{

local IFS=\>

while read -d \< ENTITY CONTENT

do

TAG_NAME=${ENTITY%% *}

ATTRIBUTES=${ENTITY#* *}

if [[ $TAG_NAME == $2 ]]

then

value=`getattr ${ATTRIBUTES} ${3}`

echo $value

fi

done < $1

}

get_content_value()

{

local IFS=\>

while read -d \< ENTITY CONTENT

do

TAG_NAME=${ENTITY%% *}

if [[ $TAG_NAME == $2 ]]

then

echo $CONTENT

fi

done < $1

}

#main in this shell

if [ $# -ne 1 ]

then

Usage

fi

if [ ! -f $1 ]

then

echo "fail to load data from file, file $1 not exist!"

exit 1

fi

list_content $1

时间: 2024-08-25 14:01:11

bash 解析XML的脚本的相关文章

Python:使用基于事件驱动的SAX解析XML

SAX的特点: 是基于事件的 API 在一个比 DOM 低的级别上操作 为您提供比 DOM 更多的控制 几乎总是比 DOM 更有效率 但不幸的是,需要比 DOM 更多的工作 基于对象和基于事件的接口 您可能已经知道语法分析器有两类接口 - 基于对象的(如:DOM)和基于事件(如:SAX)的接口. DOM是基于对象的语法分析器的标准 API. 作为基于对象的接口,DOM 通过在内存中显示地构建对象树来与应用程序通信.对象树是 XML 文件中元素树的精确映射. DOM 易于学习和使用,因为它与基本

java使用sax解析xml

目的:解析xml文件,并存入mysql,并且要解析的字段能一一对应.这里解析的是微博的文件,想要利用里面的article和person_id字段. 思路: 为了能得到person_id和article能一一对应.因此对两个字段分别解析,并且定义一个私有变量ct,在重载的函数startElement中自动加1.这个ct作为插入mysql中的article和person_id的主键即(ct,article)和(ct,person_id),在分别插入两张不同的表a和b之后,两个表做连接操作,实现art

java中的xml简介与DOM解析xml

1. xml简介 XML:指可扩展标记语言, Extensible Markup Language:类似HTML.XML的设计宗旨是传输数据,而非显示数据. 一个xml文档实例: 1 <?xml version="1.0" encoding="UTF-8"?> 2 <company name="Tencent" address="深圳市南山区"> 3 <department deptNo=&quo

Unity中用Mono插件解析xml文件

1.解压压缩包,把文件夹拖到脚本文件夹下 Mono是第三方基金会开发的开源的东西,通过Mono基础上开发的程序可以在各个系统下运行.开发语言是C#. 用插件解析比较高效,平台运行稳定.使用简单. Unity安装路径中可以找到Mono压缩包 2.新建脚本XmlTest using UnityEngine; using System.Collections; using Mono.Xml; using System.Security; public class XmlTest : MonoBehav

python解析xml并按照其结构输出

平时写代码需要将一个xml文件按照其结构,将每个节点列出来,如: <root> <person age="18"> <name>hzj</name> <sex>man</sex> </person> <person age="19" des="hello"> <name>kiki</name> <sex>female

Linux Shell | 解析xml节点

01 xml文件 # user.xml <user> <name>Toy</name> <sex>man</sex> <room/> </user> 其中第 5 行的<room/> xml 节点是空节点,是比较特殊的格式. 02 多条命令解析xml节点 采用多条命令和管道符也可以解析xml节点,方式如下: [~]$ cat user.xml | grep name | sed 's/^.*<name>

【dom4j】解析xml为map

dom4j解析xml文件 <?xml version="1.0" encoding="utf-8"?> <workflows> <queryRequest> <branchId>88037062</branchId> <merSysId>00000317</merSysId> <queryNo>948983692</queryNo> <billType&

四种生成和解析XML文档的方法详解

众所周知,现在解析XML的方法越来越多,但主流的方法也就四种,即:DOM.SAX.JDOM和DOM4J 一.介绍及优缺点分析 1. DOM(Document Object Model) DOM是用与平台和语言无关的方式表示XML文档的官方W3C标准.DOM是以层次结构组织的节点或信息片断的集合.这个层次结构允许开发人员在树中寻找特定信息.分析该结构通常需要加载整个文档和构造层次结构,然后才能做任何工作.由于它是基于信息层次的,因而DOM被认为是基于树或基于对象的. [优点]      ①允许应用

DOM解析XML

DOM的文档驱动 处理DOM的时候,我们需要读入整个的XML文档,然后在内存中创建DOM树,生成 DOM树上的每个Node对象 优点是:可以对XML文档进行增删改查的复杂操作,可以随时按照节点间的关系访问数据 缺点: 受内存容量限制,不能处理大的文档,由于没有索引机制,处理效率较低 DOM(文档对象模型),为XML文档的解析定义了一组接口,解析器读入整个文档,然后构造一个驻留内存的树结构,然后代码就可以使用DOM接口来 操组整个树结构,其他点如下: 优点:整个文档树都在内存当中,便于操作:支持删