一、问题描述:
一个XML文档,名为OriginXml.xml,示例数据如下:
<?xml version="1.0" encoding="utf-8"?>
<Class>
<student id="2001001">
<name>张三</name>
<age>18</age>
<scores>
<语文>79</语文>
<数学>90</数学>
</scores>
</student>
<student id="2001002">
<name>李四</name>
<age>20</age>
<scores>
<语文>88</语文>
<数学>64</数学>
</scores>
</student>
</Class>
现需要在两个文档间转换,需要将标签student修改为<pStudent>,其余子元素保持不变,修改的文档存入ModifyXML.xml中。
二、问题分析
修改标签名称,实质上是对元素重命名。元素在DTD或XML Schema中定义,因此修改元素名称必须修改DTD或XML Schema,否则修改后的文档不是“数据有效”的。如果没有DTD或XML Schema的情况下,则要简单一些。可以直接修改或 ......
page.xml
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="page.xsl" ?>
<list>
<item>1</item>
<item>2</item>
<item>3</item>
<item>4</item>
<item>5</item>
<item>6</item>
<item>7</item>
<item>8</item>
<item>9</item>
<item>10</item>
<item>11</item>
<item>12</item>
<item>13</item>
</list>
page.xsl
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:param name="size" select="6"/>
<xsl:template match="list">
<html>
<script>
<![CDATA[
function nextPage(num){
document.getElementById("content"+num).style.display="" ......
在很多研讨会和培训班上我遇到过许多人,他们还不明白为什么要使用XML也不知道如何在他们的应用中使用XML。一些来自诸如Gartner公司的报告建议说,商业公司不能再做局外人了,不能对XML置之不理。如果你还不清楚XML到底有什么好处的话,你并不是唯一的人。
我决定把与人们和媒体关于XML话题的交谈整理成文,列出XML在应用中的五个最令人喜爱的用法。尽管这些并不能包含XML的所有潜在应用,至少是些最重要的领域。
1、数据交换
用XML在应用程序和公司之间作数据交换已不是什么秘密了,毫无疑问应被列为第一位。那么为什么XML在这个领域里的地位这么重要呢?原因就是XML使用元素和属性来描述数据。在数据传送过程中,XML始终保留了诸如父/子关系这样的数据结构。几个应用程序可以共享和解析同一个XML文件,不必使用传统的字符串解析或拆解过程。
相反,普通文件不对每个数据段做描述(除了在头文件中),也不保留数据关系结构。使用XML做数据交换可以使应用程序更具有弹性,因为可以用位置(与普通文件一样)或用元素名(从数据库)来存取XML数据。
2、Web服务
Web服务是最令人激动的革命之一,它让使用不同系统和不同编程语言的人们能够相互交流和分享数据。其基础在于Web服 ......
1.有n个整数,使前面各数顺序向后移m个位置,最后m个数变成最前面m个数。
#include<stdio.h>
int f(int *);
int main()
{
int *p,a[10];
for(p=a;p<a+10;p++)
scanf("%d",p);
f(a);
for(p=a;p<a+10;p++)
printf("%d ",*p);
return 0;
}
int f(int *a)
{
int i,*p,b[10];
for(p=a;p<a+10;p++)
{
if(p-a<10-3)
b[p-a+3]=*p;
else
b[p-a-10+3]=*p;
}
for(i=0,p=b;p<b+10;i++,p++)
a[i]=*p;
return 0;
}
2.有n个人围成一圈,顺序排号。从第1个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。
#include<stdio.h>
int main()
{
int *p,*q,r=1,i,t=0,n,a[100];
for(i=0;i<100;i++)
a[i]=i+1;
p=a;
printf("input the number of people:");
scanf("%d",&n);
while(t!=n-1)
{
if(p-a==n) p=q;
if(r==3&&*p!=0)
{
*p=0;
r=1;
t++;
}
if(*p!=0) r++;
for(i=0;i<n;i++)
{
if(a[i]!=0)
{
q=&a[i];
break;
}
} ......
日志记录了正式执行测试之前的整个工作过程(以失败经验为主),其中包括:测试方案的制定,方案的可执行性验证,以及方案执行失败后的修改与完善。此次工作为“性能测试”范畴,这个方向也是我的技术短板之一。坦白的讲,以我个人的能力几乎不能做到,之所以解决方案能够通过,在此主要感谢开发同事的全力支持和帮助。
一、初识Toad
任务刚被分配,项目组提交的测试需求为“针对底层sql 语句”执行性能测试。随即向开发人员咨询,被告知Oracle自带工具可以执行sql语句的性能分析及优化功能。但是,因为要执行并发测试,显然这个工具无法满足测试需要。随后又有同事提出使用Toad可以实现直接测试数据库中的sql语句,恰好老李那有这个工具(盗版),要过来安装、破解,通知开发人员提供测试用的sql代码。各种百度,谷歌,开始了Taod的钻研之旅。
虽然在技术帖中搜到的相关功能的介绍,但是始终无法在我的软件环境中找到此功能。直到第二个工作日才弄明白,原来Toad在8.5版本之后将所有功能整合,并通过KEY来区别不同功能,因为这个软件是按功能来收费的 ......
如何交换两个变量的值:
C语言中的传值代码如下:
int change(int x,int y)
{
int temp=x;
x=y;
y=temp;
}
C语言中的传址代码如下:
int change(int *p,int *q)
{
int temp=*p;
*p=*q;
*q=temp;
}
使用C++中的引用类型代码如下:
int change(int &x,int &y)
{
int temp=x;
x=y;
y=temp;
}
JAVA中代码同上;
上述代码共同点是都是使用的额外变量temp;如何不使用额外变量完成两个数的交换呢?
int change(int x,int y)
{
x=x+y;
y=x-y;
x=x-y;
}
例如:x=3,y=4
第一步:x=x+y=3+4=7;
第二步:y=x-y=7-4=3;
第三步: x=x-y=7-3=4;
如粗完成了连个数的交换,并且每有使用额外的空间. ......
如何交换两个变量的值:
C语言中的传值代码如下:
int change(int x,int y)
{
int temp=x;
x=y;
y=temp;
}
C语言中的传址代码如下:
int change(int *p,int *q)
{
int temp=*p;
*p=*q;
*q=temp;
}
使用C++中的引用类型代码如下:
int change(int &x,int &y)
{
int temp=x;
x=y;
y=temp;
}
JAVA中代码同上;
上述代码共同点是都是使用的额外变量temp;如何不使用额外变量完成两个数的交换呢?
int change(int x,int y)
{
x=x+y;
y=x-y;
x=x-y;
}
例如:x=3,y=4
第一步:x=x+y=3+4=7;
第二步:y=x-y=7-4=3;
第三步: x=x-y=7-3=4;
如粗完成了连个数的交换,并且每有使用额外的空间. ......
如何交换两个变量的值:
C语言中的传值代码如下:
int change(int x,int y)
{
int temp=x;
x=y;
y=temp;
}
C语言中的传址代码如下:
int change(int *p,int *q)
{
int temp=*p;
*p=*q;
*q=temp;
}
使用C++中的引用类型代码如下:
int change(int &x,int &y)
{
int temp=x;
x=y;
y=temp;
}
JAVA中代码同上;
上述代码共同点是都是使用的额外变量temp;如何不使用额外变量完成两个数的交换呢?
int change(int x,int y)
{
x=x+y;
y=x-y;
x=x-y;
}
例如:x=3,y=4
第一步:x=x+y=3+4=7;
第二步:y=x-y=7-4=3;
第三步: x=x-y=7-3=4;
如粗完成了连个数的交换,并且每有使用额外的空间. ......