当前位置: 首页 > news >正文

udp开发-dtd验证,dom解析

//博主太懒了,并没有提供范例程序

 

6、基于UDP开发

(1)发送方:socket->准备数据包

DatagramSocket docket = new DatagramSocket();

//准备数据包,

InetAddress ia = InetAddress.getByName("对方的ip地址");

DatagramPacket dp = new DatagramPacket(str.getBytes(),字节数足额长度,地址,端口号);

//发送数据

Socket.send(dp);

2)接收方:

DatagramSocket socket= new DatagramSocket(端口号);

//准备接收数据包

Byte[] b = new byte[1024];

DatagramPacket dp = new DatagramPacket(b,b.lenth);

//接收数据

Socket.receiver(dp);

//将字节数组的数据保存成字符串

String s = new String(dp.getData(),0,dp.getData().length);

补充:建立以此链接后,返回数据时,可以不指定端口

SocketAddress sa  =  dp.getSocketAddress();

Byte[] by = str.getBytes();

DatagramPacket data = new DatagramPacket(by,by.length,sa);

 

7、junit添加

选中项目->右键:"build path" ->configure build path->libararies ->add Library->Junit->next,下

拉菜单选择JUint4 ->Finish ->ok

 

1xml声明语句:<?xml version="1,0" encoding="UTF-8"?>

格式良好的XML文档需满足:

<1>必须有XML声明

<2>必须有且仅有一个根元素

<3>标签大小写敏感

<4>属性值用双引号

<5>标签成对

<6>元素正确嵌套

 

2、DTD验证:

(1)作用:对xml文件格式的限定,保证文件格式规整

(2)实现:

<!DOCTYPE 根标签名[

<!ELEMENT 标签名(该标签中包含的内容)>//三者之间使用空格隔开

]>

限定标签出现的次数符号:

--0-1

+--1到多次

*--0到多次

 

(3)验证属性:

<!ATTLIST 属性坐在标签 属性名 属性值类型 [其他]>

属性类型:CDATA-比奥斯文本

其他:#REQUIRED--必填

 

3、外部DTD

引入语法:

<!DOCTYPE 根元素 SYSTEM "dtd文件">

注:dtd文件中直接使用 element 和 attlist标签

一般情况下引入外部dtd

文件后缀 dtd

 

使用DOM解析XML主要使用的对象

4、使用对象:DocumentNodeListNodeElement

Document 表示XML的属性解耦股

NodeList 表示 标签对集合

Node 表示一对标签极其内容

Element 表示标签,用于获取属性

(2) 常用方法

Document 

getDocuementElement()Element- 获取根元素

getElementsByTagName("标签"):获取指定的标签列表

NodeList : 

item(int index):遍历 每个Node节点 

Element getAttribute("属性名"):返回标签中的属性值

Node

getNodeName()://获取节点名称

getTextContent()://获取标签对中的文本

注:获取标签的属性值时,需要将Node对象强转为Element

强转前,先判断:

If(node.getNodeType()==Element.ELEMENT_NODE){

Element e = (Element)node;

String attribute = e.getAttriubute("属性名称");

}

转载于:https://www.cnblogs.com/letben/p/5185486.html

相关文章:

  • 不创建第三方变量对整型数组逆置
  • 封装一个地图中间件,愉快的切换百度地图和谷歌地图...
  • ListView的属性详解和探究
  • Javascript模块化编程(三):require.js的用法
  • 《Node.js入门》CentOS 6.5下Node.js Web开发环境搭建笔记
  • Xms Xmx PermSize MaxPermSize 区别
  • ssh 远程登陆 refuse
  • 使用Flexible实现手淘H5页面的终端适配的注意事项
  • Installing and Using Standby Statspack in 11g
  • 美国:《网络安全国家行动计划》(2016年2月)
  • CentOS 目录结构
  • php7安装笔记,个人零时笔记
  • ioS开发知识(二十八)
  • 单例模式里面必须要知道的事情
  • 保留两位小数
  • [译]如何构建服务器端web组件,为何要构建?
  • Computed property XXX was assigned to but it has no setter
  • exif信息对照
  • Java IO学习笔记一
  • java小心机(3)| 浅析finalize()
  • laravel with 查询列表限制条数
  • PHP 7 修改了什么呢 -- 2
  • 道格拉斯-普克 抽稀算法 附javascript实现
  • 第2章 网络文档
  • 动手做个聊天室,前端工程师百无聊赖的人生
  • 动态魔术使用DBMS_SQL
  • 基于webpack 的 vue 多页架构
  • 精彩代码 vue.js
  • 理解 C# 泛型接口中的协变与逆变(抗变)
  • 两列自适应布局方案整理
  • 面试题:给你个id,去拿到name,多叉树遍历
  • 字符串匹配基础上
  • SAP CRM里Lead通过工作流自动创建Opportunity的原理讲解 ...
  • 摩拜创始人胡玮炜也彻底离开了,共享单车行业还有未来吗? ...
  • 你学不懂C语言,是因为不懂编写C程序的7个步骤 ...
  • 数据可视化之下发图实践
  • ​queue --- 一个同步的队列类​
  • ​ssh-keyscan命令--Linux命令应用大词典729个命令解读
  • #微信小程序:微信小程序常见的配置传值
  • (1)Nginx简介和安装教程
  • (第27天)Oracle 数据泵转换分区表
  • (附源码)springboot建达集团公司平台 毕业设计 141538
  • (四)Android布局类型(线性布局LinearLayout)
  • (四)库存超卖案例实战——优化redis分布式锁
  • (转)Sql Server 保留几位小数的两种做法
  • ./和../以及/和~之间的区别
  • .net core Swagger 过滤部分Api
  • .NET 线程 Thread 进程 Process、线程池 pool、Invoke、begininvoke、异步回调
  • .NET/C# 编译期能确定的字符串会在字符串暂存池中不会被 GC 垃圾回收掉
  • .Net各种迷惑命名解释
  • .NET开源项目介绍及资源推荐:数据持久层 (微软MVP写作)
  • /bin/bash^M: bad interpreter: No such file ordirectory
  • /deep/和 >>>以及 ::v-deep 三者的区别
  • ;号自动换行
  • @Bean, @Component, @Configuration简析