DomDemo

package javawebservice;
import java.io.*;
import javax.xml.parsers.*;
import org.xml.sax.*;
import org.w3c.dom.*;
public class DOMDemo
{
//设置输出编码格式
static final String outputEncoding="UTF-8";
private PrintWriter out;
DOMDemo(PrintWriter out)
{
this.out=out;
}
private void print(Node node)
{
//打印节点名称
out.println("NodeName=\""+node.getNodeName()+"\"");
//打印节点URI
String value=node.getNamespaceURI();
if(value!=null)
{
out.println("URL=\""+value+"\"");
}
//打印节点前缀
value=node.getPrefix();
if(value!=null)
{
out.println("Prefix=\""+value+"\"");
}
//打印节点本地名称
value=node.getLocalName();
if(value!=null)
{
out.println("LocalName=\""+value+"\"");
}
//打印节点值
value=node.getNodeValue();
if(value!=null)
{
out.println("NodeValue=");
if(value.trim().equals(""))
{
out.println("[WS]");
}
else
{
out.println("\""+node.getNodeValue()+"\"");
}
}
}
private void echo(Node node)
{
int type=node.getNodeType();
switch(type)
{
//属性节点
case Node.ATTRIBUTE_NODE:
out.println("ATTR");
print(node);
break;
//CDATA
case Node.CDATA_SECTION_NODE:
out.println("CDATA");
print(node);
break;
//注释
case Node.COMMENT_NODE:
out.println("COMMENT");
print(node);
break;
//段落节点
case Node.DOCUMENT_FRAGMENT_NODE:
out.println("DOC_FRAGMENT");
print(node);
break;
//文档节点
case Node.DOCUMENT_NODE:
out.println("DOC");
print(node);
break;
//文档类型节点
case Node.DOCUMENT_TYPE_NODE:
out.println("DOC_TYPE");
print(node);
break;
//元素节点
case Node.ELEMENT_NODE:
out.println("ELEMENT");
print(node);
//得到该节点所有属性
NamedNodeMap atts=node.getAttributes();
for(int i=0;i<atts.getLength();i++)
{
Node att=atts.item(i);
//递归调用
echo(att);
}
break;
//实体节点
case Node.ENTITY_NODE:
out.println("ENTITY");
print(node);
break;
//实体引用节点
case Node.ENTITY_REFERENCE_NODE:
out.println("ENTITY_REF");
print(node);
break;
//处理说明节点
case Node.NOTATION_NODE:
out.println("NOTATION");
print(node);
break;
//预处理节点
case Node.PROCESSING_INSTRUCTION_NODE:
out.println("PROC_INST");
print(node);
break;
//文本节点
case Node.TEXT_NODE:
out.println("TEXT");
print(node);
break;
//未知节点
default:
out.println("UNKNOWN NODE:"+type);
print(node);
}
//遍历该节点子节点
for(Node child=node.getFirstChild();
child!=null;child=child.getNextSibling())
{
echo(child);
}
}
public static void main(String[] args)
{
//生成一个DocumentBuilderFactory
DocumentBuilderFactory dbf=
DocumentBuilderFactory.newInstance();
//生成一个DocumentBuilder
DocumentBuilder db=null;
try
{
db=dbf.newDocumentBuilder();
}
catch(ParserConfigurationException pce)
{
System.out.println(pce.toString());
}
String fileName=args[0];
//生成文档
Document doc=null;
try
{
//解析文档
doc=db.parse(new File(fileName));
}
catch(IOException ioe)
{
System.out.println(ioe.toString());
}
catch(SAXException se)
{
System.out.println(se.toString());
}
try
{
//显示DOM树
OutputStreamWriter outWriter=
new OutputStreamWriter(System.out,outputEncoding);
new DOMDemo(new PrintWriter(outWriter,true)).echo(doc);
}
catch(UnsupportedEncodingException uee)
{
System.out.println(uee.toString());
}
}
}
潮汐研究作为海洋科学的关键分支,融合了物理海洋学、地理信息系统及水利工程等多领域知识。TMD2.05.zip是一套基于MATLAB环境开发的潮汐专用分析工具集,为科研人员与工程实践者提供系统化的潮汐建模与计算支持。该工具箱通过模块化设计实现了两大核心功能: 在交互界面设计方面,工具箱构建了图形化操作环境,有效降低了非专业用户的操作门槛。通过预设参数输入模块(涵盖地理坐标、时间序列、测站数据等),用户可自主配置模型运行条件。界面集成数据加载、参数调整、可视化呈现及流程控制等标准化组件,将复杂的数值运算过程转化为可交互的操作流程。 在潮汐预测模块中,工具箱整合了谐波分解法与潮流要素解析法等数学模型。这些算法能够解构潮汐观测数据,识别关键影响要素(包括K1、O1、M2等核心分潮),并生成不同时间尺度的潮汐预报。基于这些模型,研究者可精准推算特定海域的潮位变化周期与振幅特征,为海洋工程建设、港湾规划设计及海洋生态研究提供定量依据。 该工具集在实践中的应用方向包括: - **潮汐动力解析**:通过多站点观测数据比对,揭示区域主导潮汐成分的时空分布规律 - **数值模型构建**:基于历史观测序列建立潮汐动力学模型,实现潮汐现象的数字化重构与预测 - **工程影响量化**:在海岸开发项目中评估人工构筑物对自然潮汐节律的扰动效应 - **极端事件模拟**:建立风暴潮与天文潮耦合模型,提升海洋灾害预警的时空精度 工具箱以"TMD"为主程序包,内含完整的函数库与示例脚本。用户部署后可通过MATLAB平台调用相关模块,参照技术文档完成全流程操作。这套工具集将专业计算能力与人性化操作界面有机结合,形成了从数据输入到成果输出的完整研究链条,显著提升了潮汐研究的工程适用性与科研效率。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值