简单使用SAXReader解析自闭合标签xml格式

String xmlString = strings[1]; //xml字符串
String xmlString实例:xml格式:

<screen Width=\“1080\” Height=\“1920\” />
<brightness value=\“0.5803921568627451\” />
<volumn value=\“0.8\” />
<shutdowntime value=\“00:00:00\” />

//解析xml
List list = new ArrayList<>();
SAXReader saxReader = new SAXReader();
//将xml流放进输入流对象
ByteArrayInputStream inputStream = new ByteArrayInputStream(xmlString.getBytes());
//获取document对象
Document document = saxReader.read(inputStream);
//获取节点下的内容
Element element = document.getRootElement();
//实例化AppByTerminal对象
AppByTerminal appByTerminal = new AppByTerminal();
//循环过滤取出根节点下的四条数据
for (Iterator i = element.elementIterator();i.hasNext()?{
//每个emlment1为一条数据
Element element1 = (Element) i.next();
//screen标签
if(element1.getName().equals(“screen”)){
//保存到对象中
appByTerminal.setScreenWidth(element1.attributeValue(“Width”));
appByTerminal.setScreenHeight(element1.attributeValue(“Height”));
}
//brightness标签
if(element1.getName().equals(“brightness”)){
appByTerminal.setBrightness(element1.attributeValue(“value”));
}
//volumn标签
if(element1.getName().equals(“volumn”)){
appByTerminal.setVolumn(element1.attributeValue(“value”));
}
//shutdowntime标签
if(element1.getName().equals(“shutdowntime”)){
appByTerminal.setShutdowntime(element1.attributeValue(“value”));
}

        }
        //list.add(appByTerminal);

        map.put("status","200");
        map.put("msg","操作成功!");
        map.put("data",appByTerminal);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SAX解析器是一种流式解析器,逐行扫描XML文档并触发事件。SAX解析器不会构建文档树,而是在解析时生成事件,然后由应用程序处理这些事件。SAX解析器主要有两种处理方式:基于事件处理和基于对象处理。其中基于事件处理是更常用的方式。 在Java中,可以使用SAX解析器来解析XML文档。具体步骤如下: 1. 创建SAXParserFactory实例。 2. 创建SAXParser实例。 3. 实现DefaultHandler类,覆盖需要处理的事件方法。 4. 调用SAXParser的parse()方法,传入XML文档和DefaultHandler实例。 以下是一个简单使用SAX解析器来解析XML文档的示例代码: ```java import javax.xml.parsers.*; import org.xml.sax.*; import org.xml.sax.helpers.*; public class SAXParserDemo extends DefaultHandler { public static void main(String[] args) throws Exception { SAXParserFactory factory = SAXParserFactory.newInstance(); SAXParser parser = factory.newSAXParser(); SAXParserDemo handler = new SAXParserDemo(); parser.parse("example.xml", handler); } public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException { System.out.println("Start Element: " + qName); } public void endElement(String uri, String localName, String qName) throws SAXException { System.out.println("End Element: " + qName); } public void characters(char[] ch, int start, int length) throws SAXException { String content = new String(ch, start, length); System.out.println("Characters: " + content); } } ``` 在上面的代码中,我们实现了DefaultHandler类,并覆盖了startElement()、endElement()和characters()方法,这些方法会在解析XML文档时自动调用。 在startElement()方法中,我们输出了元素的标签名;在endElement()方法中,我们同样输出了元素的标签名;在characters()方法中,我们输出了元素的文本内容。 最后,我们通过SAXParser的parse()方法来传入XML文档和DefaultHandler实例,进行解析操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值