#FUNCRION: GetNodeValue
#DESC : Get xmlnode value
#INPUT : 1-XmlFilePath 2-NodeName
#OUTPUT : nodevalue
function GetNodeValue
{
if [ $# -ne 2 ];then
echo " error: arguments is not enough"
echo " USAGE: $0 XmlFilePath NodeName"
echo " XmlFilePath xmlfile path type[${HOME}/config/datasource/bmp-xa-ds.xml]"
echo " NodeName nodename type[xa-datasource-property]"
echo e.g.: $0 ${HOME}/config/datasource/bmp-xa-ds.xml 'xa-datasource-property name="URL"'
return
fi
CurrentTime=`date +"%Y%m%d%H%M%S"`
tmpfile="$$_$CurrentTime"
FilePath=$1
NodeName=$2
NodePre=`awk -v Node="$NodeName" 'BEGIN {split(Node,NodeAdd," ");print NodeAdd[1]}'`
FLAG=0
sed 's/>/>\n/g' $FilePath | sed 's/<\//\n<\//g' | sed 's/\s*\(.*\)\s*$/\1/g' | sed '/^\(\s\)*$/d' | while read line
do
ISFIRST=`echo $line | sed -n "/<$NodeName/p"`
if [ "x$ISFIRST" != "x" ]; then
FLAG=1
fi
if [ ${FLAG} -eq 1 ] ; then
echo $line >> "$tmpfile"
fi
ISSEC=`echo $line | sed -n "/<\/$NodePre>/"p`
if [ "x$ISSEC" != "x" ]; then
FLAG=0
fi
done
awk '{ORS=""}{print $0}' $tmpfile | awk 'BEGIN{FS=">";RS="</"}{print $NF}' | sed '/^\(\s\)*$/d'
rm $tmpfile
}
#FUNCRION: GetNodeAttr
#DESC : Get xmlnode attribute
#INPUT : 1-XmlFilePath 2-AttrName
#OUTPUT : node attribute
function GetNodeAttr
{
if [ $# -ne 2 ];then
echo " error: arguments is not enough"
echo " USAGE: $0 XmlFilePath AttrName"
echo " XmlFilePath xmlfile path type[${HOME}/config/DiamBaseConfig.xml]"
echo " AttrName nodename type[PeerIp]"
echo " e.g.: $0 ${HOME}/config/DiamBaseConfig.xml PeerIp"
return
fi
FilePath=$1
AttrName=" $2="
sed 's/>/>\n/g' $FilePath | sed 's/<\//\n<\//g' | sed 's/\s*\.*\s*$/\1/g' | sed '/^\(\s\)*$/d' | sed -n "/$AttrName/"p | sed "s/.*$AttrName\"//g" | sed 's/\".*//g'
}
分享到:
相关推荐
在IT领域,尤其是在系统管理和自动化任务中,Shell脚本经常被用来处理各种任务,包括解析和操作XML数据。XML作为一种结构化的数据交换格式,广泛应用于配置文件、数据传输和存储等场景。本文将详细介绍如何利用Shell...
- 如果遇到问题,可以通过添加日志输出或使用`echo`命令在shell脚本中打印中间结果,帮助定位和解决问题。 通过以上步骤,你就能够在Mac环境下构建一个基本的apk渠道检测工具,实现对apk文件的自动解压和渠道号的...
Ant使用XML语法来定义任务和属性,使得构建过程可以跨平台进行。Ant不仅适用于Java项目,也可以处理其他类型的项目,因为它可以执行各种操作系统命令。 2. **jar文件**:`.jar`是Java Archive的缩写,它是Java平台...
12.6 从XML DOM节点的子树中删除仅有空白符的文本节点 451 12.7 解析Microsoft Excel的XML 452 12.8 验证XML文档 454 12.9 过滤属于指定命名空间的元素和属性 455 12.10 用SAX合并连续的文本事件 458 12.11 ...
3. **持久化环境变量**:要使环境变量在设备重启后依然有效,通常需要修改系统的启动脚本,如 `/system/etc/init/*.rc` 文件,或者在应用的 `AndroidManifest.xml` 中使用 `android:environmentVariables` 属性...
`make_ver_name.sh`则是Linux或Mac OS中的Shell脚本,功能类似,为这些平台提供了同样的便利。 `ver.bat`的工作流程可能是这样的:首先,它会查找当前的`versionName`,然后根据预设的规则(如增量或者按照特定格式...
此外,还可以使用`if`和`unless`属性控制目标是否执行,它们基于预先定义的属性值。 `<property>`元素用于定义和管理属性,属性可以是字符串值,也可以通过读取外部的属性文件(`build.properties`)来设定。属性值在...
2. **Commons BeanUtils**: 这个库是对 Java 反射和 introspection API 的封装,简化了对 Java 对象属性的操作,如设置和获取属性值,以及进行深度复制等。 3. **Commons Betwixt**: 用于将 JavaBean 映射到 XML ...
使用正则表达式匹配不区分大小写的属性值: ```javascript const elements = document.querySelectorAll('[class*="MyClass"]'); ``` ##### 4.18 获取当前域名 使用`location.hostname`获取当前页面的域名: ```...
- **元素属性获取**: 通过发送HTTP请求到Appium服务器获取指定元素的属性值,例如获取某个元素的文本内容。 #### 四、实战案例 在实际项目中,结合以上理论知识,我们可以编写出高效稳定的自动化测试脚本。例如,在...
8.7. 给属性值加引号 8.8. dialect.py 介绍 8.9. 全部放在一起 8.10. 小结 9. XML 处理 9.1. 概览 9.2. 包 9.3. XML 解析 9.4. Unicode 9.5. 搜索元素 9.6. 访问元素属性 9.7. Segue 10. 脚本和流 10.1. ...
- **Visual Basic 和 VBS 在 Windows 主机上**:可以使用 Visual Basic 或 VBS 来编写脚本来控制 VirtualBox。 - **C 语言绑定到 VirtualBox API**:对于不支持 COM/XPCOM 的平台,可以使用 C 语言来编写应用程序...
**设置属性**:可以通过XML文件定义自定义属性,并在Java代码中获取这些属性值。 #### 四、Android中自定义属性(attr.xml, TypedArray)的使用 - **自定义属性**: - 可以通过定义自定义属性来扩展Android UI控件...
API的使用方法.ec API 设置颜色对话框模块.ec ard.ec Arhz_自动更新.ec Base64编解码.ec BASE64编解码模块.ec Bios.ec Bios 信息.ec BMP加密数据.ec BMP滤镜模块.ec BOX.EC BPL专用更新模块.ec BPL综合模 块.ec BPL...
该属性可以确保SSIServlet能够正确地读取和写入文件系统。 #### 四、使用SSI技术的优势 1. **简化开发**:通过SSI技术可以在单个页面中包含多个文件,从而减少重复代码,提高代码复用率。 2. **增强灵活性**:...
这个值可以根据实际情况调整,以平衡内存使用和磁盘I/O操作的频率。 12. **fs.mapr.working.dir只是单一的目录** - **知识点说明**:`fs.mapr.working.dir` 是一个配置参数,用于指定MapReduce作业的临时工作目录...
DB2支持多种与其他系统的交互方式,包括通过ODBC、JDBC等驱动程序进行连接,以及通过XML和JSON格式的数据交换。 ### DB2表及SP管理 #### 权限管理 DB2中的权限管理包括数据库权限、schema权限、tablespace权限、...
- Shell脚本是用于自动化任务的脚本文件。 - 可以使用bash、sh等Shell编写。 #### 四、负载均衡与分布式存储 - **LVS负载均衡** - LVS是一种基于Linux内核的负载均衡解决方案。 - 支持多种负载均衡算法。 - **...