`

jdom解析xml字符串

    博客分类:
  • xml
 
阅读更多
<!-- 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字符串

    ### Java解析XML字符串 在给定的代码示例中,我们看到了如何使用JDOM库来解析一个XML字符串,并对其进行操作。下面我们将详细解析这个过程: 1. **初始化XML源**:首先,将XML字符串转化为`StringReader`对象,这...

    Jdom 生成和解析XML字符串

    ### JDOM 生成和解析 XML 字符串 #### 一、概述 JDOM(Java Document Object Model)是一种基于 Java 的 API,用于处理 XML 文档。它提供了一种简单且直观的方式来构建、修改以及读取 XML 文件。JDOM 主要有两个...

    jdom解析XML文件and把字符串解析成XML

    // 解析XML字符串 Document doc = builder.build(new StringReader(xml)); Element root = doc.getRootElement(); // 输出根元素 System.out.println("根元素: " + root.getName()); } } ``` 这段代码中,...

    jdom解析xml文件

    **JDOM解析XML文件** XML(eXtensible Markup Language)是一种用于标记数据的语言,广泛应用于数据交换、配置文件和文档存储等领域。在Java中,JDOM(Java Document Object Model)是一个流行的选择来解析和操作...

    JDOM解析xml文档实例(自己编写,仅供参考)

    `XMLOutputter`负责将`Document`对象转换为XML字符串并写入到文件。 在实际应用中,你可能需要根据XML的结构和需求调整这些步骤。JDOM提供了丰富的API来处理XML,包括查找、添加、删除元素和属性,以及处理命名...

    Jdom解析XML

    使用JDOM解析XML文档通常包括以下几个步骤: 1. 创建`SAXBuilder`实例,这是JDOM提供的解析器,可以将XML输入源转换为`Document`对象。 2. 使用`SAXBuilder`的`build`方法读取XML文件,生成`Document`对象。 3. ...

    JDOM解析XML

    5. 若要写回XML,可以使用`XMLOutputter`类将`Document`对象转换回XML字符串或直接写入文件。 在实际应用中,JDOM可以结合XPath(通过jaxen.jar实现)来快速定位XML文档中的特定节点,提高开发效率。例如,通过`...

    jdom解析XML(修改为比较通用的方法)

    1. **构建Document对象**:这是解析XML的第一步,通过`SAXBuilder`类,我们可以将XML字符串或文件转换为`Document`对象。 ```java SAXBuilder builder = new SAXBuilder(); File xmlFile = new File("mjy.xml"); ...

    Jdom解析xml案例

    修改后,需要使用`XMLOutputter`来生成新的XML字符串或写入到文件。 ```java XMLOutputter xmlOutput = new XMLOutputter(); xmlOutput.output(document, new FileWriter("output.xml")); ``` ### 示例代码 ...

    xml数据前后台解析:jdom与dom4j源码,程序可以跑

    同时,我们还会讨论如何使用jQuery在前端解析XML并展示数据。 首先,让我们了解XML的基本结构。XML文档由元素(Element)、属性(Attribute)、文本内容(Text Content)等组成。元素是XML的核心,它们通过层级关系...

    DOM、SAX、DOM4J、JDOM、StAX生成XML并返回XML字符串形式

    下面将详细介绍这些解析器的工作原理以及它们在生成XML并返回XML字符串形式时的应用。 1. DOM (Document Object Model) DOM是一种基于树形结构的XML解析模型,它将整个XML文档加载到内存中,形成一个完整的文档对象...

    jdom解析xml用到的jar包

    2. **创建SAXBuilder实例**:SAXBuilder是JDOM提供的用于解析XML的类,通过它可以将XML字符串或文件转换为Document对象。 ```java SAXBuilder saxBuilder = new SAXBuilder(); ``` 3. **读取XML文件**:使用...

    Dom JDom 解析xml 文件

    3. 保存更改:使用`org.jdom2.output.Format`和`XMLOutputter`或`Transformer`将`Document`对象转换为XML字符串或写入文件。 在实际开发中,选择DOM还是JDOM取决于需求。DOM适合小到中型的XML文件,且需要频繁随机...

    解析XML所需的jar jdom.jar

    5. **转换回XML字符串**:如果需要将修改后的XML结构转换回字符串,可以使用`XMLOutputter`类: ```java import org.jdom2.output.XMLOutputter; XMLOutputter xmlOutput = new XMLOutputter(); String xmlString =...

    java利用jdom读取xml文件

    5. 保存修改:如果需要保存对XML文件的修改,可以使用`XMLOutputter`类将`Document`对象转换回XML字符串,然后写回文件: ```java XMLOutputter outputter = new XMLOutputter(); String xmlString = outputter....

    如何将xml的String字符串转化标准格式的String字符串(jdom)

    // 创建SAXBuilder实例以解析XML字符串 SAXBuilder saxBuilder = new SAXBuilder(); // 使用StringReader将XML字符串作为输入 StringReader inputReader = new StringReader(xml); // 解析XML字符串并创建...

    dom4j和jdom解析XML小例子

    这段代码首先创建了一个`SAXBuilder`对象,并用它来解析XML字符串。然后,我们获取了XML文档的根元素和命名空间。接下来,我们访问了`Head`和`Error`节点,并获取了`Error`节点的属性值。最后,我们遍历了所有`...

    java源码:用jdom解析xml.rar

    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文件

    以下是一个简单的示例代码,演示了如何使用JDOM解析XML文件: ```java import org.jdom2.Document; import org.jdom2.Element; import org.jdom2.input.SAXBuilder; import java.io.File; public class ...

Global site tag (gtag.js) - Google Analytics