初步了解XML

1.第一行为文档声明:<?xml version="1.0" encoding="UTF-8"?>
2.标签有大小写区分
3.标签是通过属性来存取数据的:由于第一种与第二种格式解析不同,所以大家要统一才可以。
例如 <students>
<student id="1" ><!--第一种属性-->
</student>
<student>
<id><!--第二种属性-->
2
</id>
</student>
</students>
students
student1
student2
和数据库十分相似!!!!!!!!!
由于大家方式不同,于是有了一种叫做 DTD 或者 Schma 的约束,防止格式不同。

xml的应用是保存任意不规则的数据。

解析XML
基于DOM(指倒立的节点数)见下图


注意: 元素节点 类型为 1
属性节点类型为2
文本节点类型3
当你得到节点类型 getNodeType时显示的是 1 2 3;

注意 编写标签时 一个换行为一个空节点(元素节点的数量);
比如说
<student></student> 元素节点数量为0

<student>
</student> 元素节点数量为1

以下为一段代码:
public static void main(String[] args) throws ParserConfigurationException, SAXException, IOException {
// TODO Auto-generated method stub
String xml="src/NewFile.xml";
//需要有一个解析器,但是解析器的的构造函数无法调用,于是用工厂模式来。
DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance();
DocumentBuilder builder=factory.newDocumentBuilder();//用工厂模式实例化解析器
//加载要解析的文档;
Document doc = builder.parse(xml);
//开始解析文档 获取根节点,以根节点为中心来处理数据
org.w3c.dom.Element root = doc.getDocumentElement();
System.out.println(root.getNodeType());
// NodeList list1=root.getChildNodes(); //返回的类型为一个list集合 不推荐这种浏览方式
// System.out.println(list1.getLength());
NodeList list=root.getElementsByTagName("student");//将student下元素节点全部都传给 list
for (int i = 0; i < list.getLength(); i++) {
Element node=(Element) list.item(i);
System.out.println(node.getAttribute("id"));//只有文本节点才可以使用 node.getNodeValue();
}
}

最后也是最重要的一条:解析XML得到的数据就是为了要处理所以需要设计一个符合XML的类来接收数据
接下来是关于查找数据
这是查找的数据
<?xml version="1.0" encoding="UTF-8"?>
<students>
<student id="1" name="ysp" school="google">
<id>2</id>
<name>lsh</name>>
<school>ysp学院</school>
</student>
</students>
查找的方法:
NodeList list=root.getElementsByTagName("student");//将student下元素节点全部都传给 list
System.out.println(list.item(0).getTextContent());
结果:
2
lsh>
ysp学院
结论:getTextContent()得到该标签下所有标签的值
NodeList list=root.getElementsByTagName("student");//将student下元素节点全部都传给 list
for (int i = 0; i < list.getLength(); i++) {
Element node=(Element) list.item(i);
String id = node.getAttribute("id");
System.out.println(id);
}
结果:9
结论:String id = node.getAttribute("id");得到属性的值
总体:
NodeList list=root.getElementsByTagName("student");//将student下元素节点全部都传给 list
for (int i = 0; i <list.getLength(); i++) {
Element student=(Element) list.item(i);//f返回的是一个节点
String id=student.getAttribute("id");//访问属性
Element nameNode=(Element) student.getElementsByTagName("name").item(0);//访问标签
System.out.println(id);
System.out.println(nameNode.getAttribute("name"));
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
智慧农业是一种结合了现代信息技术,包括物联网、大数据、云计算等,对农业生产过程进行智能化管理和监控的新模式。它通过各种传感器和设备采集农业生产中的关键数据,如大气、土壤和水质参数,以及生物生长状态等,实现远程诊断和精准调控。智慧农业的核心价值在于提高农业生产效率,保障食品安全,实现资源的可持续利用,并为农业产业的转型升级提供支持。 智慧农业的实现依赖于多个子系统,包括但不限于设施蔬菜精细化种植管理系统、农业技术资料库、数据采集系统、防伪防串货系统、食品安全与质量追溯系统、应急追溯系统、灾情疫情防控系统、农业工作管理系统、远程诊断系统、监控中心、环境监测系统、智能环境控制系统等。这些系统共同构成了一个综合的信息管理和服务平台,使得农业生产者能够基于数据做出更加科学的决策。 数据采集是智慧农业的基础。通过手工录入、传感器自动采集、移动端录入、条码/RFID扫描录入、拍照录入以及GPS和遥感技术等多种方式,智慧农业系统能够全面收集农业生产过程中的各种数据。这些数据不仅包括环境参数,还涵盖了生长状态、加工保存、检验检疫等环节,为农业生产提供了全面的数据支持。 智慧农业的应用前景广阔,它不仅能够提升农业生产的管理水平,还能够通过各种应用系统,如库房管理、无公害监控、物资管理、成本控制等,为农业生产者提供全面的服务。此外,智慧农业还能够支持政府监管,通过发病报告、投入品报告、死亡报告等,加强农业产品的安全管理和质量控制。 面对智慧农业的建设和发展,存在一些挑战,如投资成本高、生产过程标准化难度大、数据采集和监测的技术难题等。为了克服这些挑战,需要政府、企业和相关机构的共同努力,通过政策支持、技术创新和教育培训等手段,推动智慧农业的健康发展。智慧农业的建设需要明确建设目的,选择合适的系统模块,并制定合理的设备布署方案,以实现农业生产的智能化、精准化和高效化。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值