<!-- xml字符串文件如下 --> <?xml version="1.0" encoding="utf-8"?> <DataTable> <xs:schema id="NewDataSet" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> <xs:element name="NewDataSet" msdata:IsDataSet="true" msdata:MainDataTable="BD" msdata:UseCurrentLocale="true"> <xs:complexType> <xs:choice minOccurs="0" maxOccurs="unbounded"> <xs:element name="BD"> <xs:complexType> <xs:sequence> <xs:element name="Name" type="xs:string" minOccurs="0" /> <xs:element name="LatitudebeidouGps" type="xs:string" minOccurs="0" /> <xs:element name="LongitudebeidouGps" type="xs:string" minOccurs="0" /> <xs:element name="Speed" type="xs:string" minOccurs="0" /> <xs:element name="Heading" type="xs:string" minOccurs="0" /> <xs:element name="Course" type="xs:int" minOccurs="0" /> <xs:element name="Time" type="xs:string" minOccurs="0" /> </xs:sequence> </xs:complexType> </xs:element> </xs:choice> </xs:complexType> </xs:element> </xs:schema> <diffgr:diffgram xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1"> <DocumentElement> <BD diffgr:id="BD1" msdata:rowOrder="0" diffgr:hasChanges="inserted"> <Name>交工82</Name> <LatitudebeidouGps>khNgehWIdWEZYaEFWTdduA==</LatitudebeidouGps> <LongitudebeidouGps>4ZBPziWnCDXu61Ta4Bb54w==</LongitudebeidouGps> <Speed></Speed> <Heading>511</Heading> <Course>0</Course> <Time>2015-11-18 11:01:49</Time> </BD> <BD diffgr:id="BD2" msdata:rowOrder="1" diffgr:hasChanges="inserted"> <Name>新海鳄</Name> <LatitudebeidouGps>Yn8OHhlOcCFOBZ+F1cwgpA==</LatitudebeidouGps> <LongitudebeidouGps>r/ldhqZad+b/YIqFWSbfMw==</LongitudebeidouGps> <Speed></Speed> <Heading>317</Heading> <Course>0</Course> <Time>2015-11-18 10:57:24</Time> </BD> <BD diffgr:id="BD3" msdata:rowOrder="2" diffgr:hasChanges="inserted"> <Name>三航拖907</Name> <LatitudebeidouGps>AlIlguvUKOSuOPSwDOzEQg==</LatitudebeidouGps> <LongitudebeidouGps>nHYrlHOgvTKFq1FC4dWcPQ==</LongitudebeidouGps> <Speed>102.3</Speed> <Heading>511</Heading> <Course>0</Course> <Time>2013-08-14 10:35:01</Time> </BD> <BD diffgr:id="BD4" msdata:rowOrder="3" diffgr:hasChanges="inserted"> <Name>方驳99</Name> <LatitudebeidouGps>w1/6Gcj6nj5lc1hXp7/mfw==</LatitudebeidouGps> <LongitudebeidouGps>cPBpCNQ+A9V4r2la4CFtNQ==</LongitudebeidouGps> <Speed></Speed> <Heading>511</Heading> <Course>0</Course> <Time>2015-11-18 11:01:33</Time> </BD> </DocumentElement> </diffgr:diffgram> </DataTable>
/** * 解析xml中"BD"节点下的内容 * @param xmlDoc xml字符串 * @return */ public static List<Map<String, String>> getShipList(String xmlDoc) { List<Map<String, String>> list = null; //创建一个新的字符串 StringReader read = new StringReader(xmlDoc); //创建新的输入源SAX 解析器将使用 InputSource 对象来确定如何读取 XML 输入 InputSource source = new InputSource(read); //创建一个新的SAXBuilder SAXBuilder sb = new SAXBuilder(); try { list = new ArrayList<Map<String,String>>(); Map<String, String> map = null; //通过输入源构造一个Document Document doc = sb.build(source); //获取的根元素 Element root = doc.getRootElement(); //获取"DocumentElement"子节点(第二个参数是命名空间Namespace) Element child = root.getChild("diffgram", null).getChild("DocumentElement", null); Element et = null; //循环遍历"DocumentElement"节点下的"BD"节点 for(Object obj : child.getChildren("BD", null)){ et = (Element) obj; map = new HashMap<String, String>(); map.put("Name", et.getChildTextTrim("Name")); map.put("LatitudebeidouGps", et.getChildTextTrim("LatitudebeidouGps")); map.put("LongitudebeidouGps", et.getChildTextTrim("LongitudebeidouGps")); map.put("Speed", et.getChildTextTrim("Speed")); map.put("Heading", et.getChildTextTrim("Heading")); map.put("Course", et.getChildTextTrim("Course")); map.put("Time", et.getChildTextTrim("Time")); list.add(map); } } catch (Exception e) { e.printStackTrace(); } return list; }
相关推荐
### Java解析XML字符串 在给定的代码示例中,我们看到了如何使用JDOM库来解析一个XML字符串,并对其进行操作。下面我们将详细解析这个过程: 1. **初始化XML源**:首先,将XML字符串转化为`StringReader`对象,这...
### JDOM 生成和解析 XML 字符串 #### 一、概述 JDOM(Java Document Object Model)是一种基于 Java 的 API,用于处理 XML 文档。它提供了一种简单且直观的方式来构建、修改以及读取 XML 文件。JDOM 主要有两个...
// 解析XML字符串 Document doc = builder.build(new StringReader(xml)); Element root = doc.getRootElement(); // 输出根元素 System.out.println("根元素: " + root.getName()); } } ``` 这段代码中,...
**JDOM解析XML文件** XML(eXtensible Markup Language)是一种用于标记数据的语言,广泛应用于数据交换、配置文件和文档存储等领域。在Java中,JDOM(Java Document Object Model)是一个流行的选择来解析和操作...
`XMLOutputter`负责将`Document`对象转换为XML字符串并写入到文件。 在实际应用中,你可能需要根据XML的结构和需求调整这些步骤。JDOM提供了丰富的API来处理XML,包括查找、添加、删除元素和属性,以及处理命名...
使用JDOM解析XML文档通常包括以下几个步骤: 1. 创建`SAXBuilder`实例,这是JDOM提供的解析器,可以将XML输入源转换为`Document`对象。 2. 使用`SAXBuilder`的`build`方法读取XML文件,生成`Document`对象。 3. ...
5. 若要写回XML,可以使用`XMLOutputter`类将`Document`对象转换回XML字符串或直接写入文件。 在实际应用中,JDOM可以结合XPath(通过jaxen.jar实现)来快速定位XML文档中的特定节点,提高开发效率。例如,通过`...
1. **构建Document对象**:这是解析XML的第一步,通过`SAXBuilder`类,我们可以将XML字符串或文件转换为`Document`对象。 ```java SAXBuilder builder = new SAXBuilder(); File xmlFile = new File("mjy.xml"); ...
修改后,需要使用`XMLOutputter`来生成新的XML字符串或写入到文件。 ```java XMLOutputter xmlOutput = new XMLOutputter(); xmlOutput.output(document, new FileWriter("output.xml")); ``` ### 示例代码 ...
同时,我们还会讨论如何使用jQuery在前端解析XML并展示数据。 首先,让我们了解XML的基本结构。XML文档由元素(Element)、属性(Attribute)、文本内容(Text Content)等组成。元素是XML的核心,它们通过层级关系...
下面将详细介绍这些解析器的工作原理以及它们在生成XML并返回XML字符串形式时的应用。 1. DOM (Document Object Model) DOM是一种基于树形结构的XML解析模型,它将整个XML文档加载到内存中,形成一个完整的文档对象...
2. **创建SAXBuilder实例**:SAXBuilder是JDOM提供的用于解析XML的类,通过它可以将XML字符串或文件转换为Document对象。 ```java SAXBuilder saxBuilder = new SAXBuilder(); ``` 3. **读取XML文件**:使用...
3. 保存更改:使用`org.jdom2.output.Format`和`XMLOutputter`或`Transformer`将`Document`对象转换为XML字符串或写入文件。 在实际开发中,选择DOM还是JDOM取决于需求。DOM适合小到中型的XML文件,且需要频繁随机...
5. **转换回XML字符串**:如果需要将修改后的XML结构转换回字符串,可以使用`XMLOutputter`类: ```java import org.jdom2.output.XMLOutputter; XMLOutputter xmlOutput = new XMLOutputter(); String xmlString =...
5. 保存修改:如果需要保存对XML文件的修改,可以使用`XMLOutputter`类将`Document`对象转换回XML字符串,然后写回文件: ```java XMLOutputter outputter = new XMLOutputter(); String xmlString = outputter....
// 创建SAXBuilder实例以解析XML字符串 SAXBuilder saxBuilder = new SAXBuilder(); // 使用StringReader将XML字符串作为输入 StringReader inputReader = new StringReader(xml); // 解析XML字符串并创建...
这段代码首先创建了一个`SAXBuilder`对象,并用它来解析XML字符串。然后,我们获取了XML文档的根元素和命名空间。接下来,我们访问了`Head`和`Error`节点,并获取了`Error`节点的属性值。最后,我们遍历了所有`...
2. 加载XML文档:使用`SAXBuilder`类可以将XML字符串或文件加载为一个`Document`对象。例如: ```java import org.jdom2.Document; import org.jdom2.input.SAXBuilder; File xmlFile = new File("path_to_your_xml...
以下是一个简单的示例代码,演示了如何使用JDOM解析XML文件: ```java import org.jdom2.Document; import org.jdom2.Element; import org.jdom2.input.SAXBuilder; import java.io.File; public class ...