JAVA 生成xml格式,具体格式如下,请问JAVA方法怎么写

JAVA 生成xml格式,具体格式如下,请问JAVA方法怎么写,第1张

import javaioFile;

import javaioFileNotFoundException;

import javaioFileOutputStream;

import javaioIOException;

import orgw3cdom;

import orgxmlsaxSAXException;

import javaxxmlparsers;

import javaxxmltransform;

import javaxxmltransformdomDOMSource;

import javaxxmltransformstream;

import javaxxmlxpath;

public class Test {

public static void main(String[] args) {

        DocumentBuilderFactory factory=DocumentBuilderFactorynewInstance();

        Element theBook=null, theElem=null, root=null;

        try {

            factorysetIgnoringElementContentWhitespace(true);

            

            DocumentBuilder db=factorynewDocumentBuilder();

            Document xmldoc=dbparse(new File("Test1xml"));

            root=xmldocgetDocumentElement();

            

            theBook=(Element) selectSingleNode("/books/book[name='哈里波特']", root);

            Systemoutprintln("--- 查询找《哈里波特》 ----");

            Element nameNode=(Element)theBookgetElementsByTagName("price")item(0); 

            String name=nameNodegetFirstChild()getNodeValue(); 

            Systemoutprintln(name);

            output(theBook);

            Systemoutprintln("=============selectSingleNode(books/book[name='哈里波特'], root)==================");

            

            //--- 新建一本书开始 ----

            theBook=xmldoccreateElement("book");

            theElem=xmldoccreateElement("name");

            theElemsetTextContent("新书");

            theBookappendChild(theElem);

            

            theElem=xmldoccreateElement("price");

            theElemsetTextContent("20");

            theBookappendChild(theElem);

            theElem=xmldoccreateElement("memo");

            theElemsetTextContent("新书的更好看。");

            theBookappendChild(theElem);

            rootappendChild(theBook);

            Systemoutprintln("--- 新建一本书开始 ----");

            output(xmldoc);

            Systemoutprintln("==============================");

            

            //--- 新建一本书完成 ----

            //--- 下面对《哈里波特》做一些修改。 ----

            //--- 查询找《哈里波特》----

           

            //--- 此时修改这本书的价格 -----

            theBookgetElementsByTagName("price")item(0)setTextContent("15");//getElementsByTagName返回的是NodeList,所以要跟上item(0)。另外,getElementsByTagName("price")相当于xpath的"//price"。

            Systemoutprintln("--- 此时修改这本书的价格 ----");

            output(theBook);

            //--- 另外还想加一个属性id,值为B01 ----

            theBooksetAttribute("id", "B01");

            Systemoutprintln("--- 另外还想加一个属性id,值为B01 ----");

            output(theBook);

            //--- 对《哈里波特》修改完成。 ----

            //--- 要用id属性删除《三国演义》这本书 ----

            theBook=(Element) selectSingleNode("/books/book[@id='B02']", root);

            Systemoutprintln("--- 要用id属性删除《三国演义》这本书 ----");

            output(theBook);

            theBookgetParentNode()removeChild(theBook);

            Systemoutprintln("--- 删除后的XML ----");

            output(xmldoc);

            //--- 再将所有价格低于10的书删除 ----

            NodeList someBooks=selectNodes("/books/book[price<10]", root);

            Systemoutprintln("--- 再将所有价格低于10的书删除 ---");

            Systemoutprintln("--- 符合条件的书有 "+someBooksgetLength()+"本。 ---");

            for(int i=0;i<someBooksgetLength();i++) {

                someBooksitem(i)getParentNode()removeChild(someBooksitem(i));

            }

            output(xmldoc);

            saveXml("Test1_Editedxml", xmldoc);

        } catch (ParserConfigurationException e) {

            eprintStackTrace();

        } catch (SAXException e) {

            eprintStackTrace();

        } catch (IOException e) {

            eprintStackTrace();

        }

    }

    public static void output(Node node) {//将node的XML字符串输出到控制台

        TransformerFactory transFactory=TransformerFactorynewInstance();

        try {

            Transformer transformer = transFactorynewTransformer();

            transformersetOutputProperty("encoding", "gb2312");

            transformersetOutputProperty("indent", "yes");

            DOMSource source=new DOMSource();

            sourcesetNode(node);

            StreamResult result=new StreamResult();

            resultsetOutputStream(Systemout);

            

            transformertransform(source, result);

        } catch (TransformerConfigurationException e) {

            eprintStackTrace();

        } catch (TransformerException e) {

            eprintStackTrace();

        }   

    }

    

    public static Node selectSingleNode(String express, Object source) {//查找节点,并返回第一个符合条件节点

        Node result=null;

        XPathFactory xpathFactory=XPathFactorynewInstance();

        XPath xpath=xpathFactorynewXPath();

        try {

            result=(Node) xpathevaluate(express, source, XPathConstantsNODE);

        } catch (XPathExpressionException e) {

            eprintStackTrace();

        }

        

        return result;

    }

    

    public static NodeList selectNodes(String express, Object source) {//查找节点,返回符合条件的节点集。

        NodeList result=null;

        XPathFactory xpathFactory=XPathFactorynewInstance();

        XPath xpath=xpathFactorynewXPath();

        try {

            result=(NodeList) xpathevaluate(express, source, XPathConstantsNODESET);

        } catch (XPathExpressionException e) {

            eprintStackTrace();

        }

        

        return result;

    }

    

    public static void saveXml(String fileName, Document doc) {//将Document输出到文件

        TransformerFactory transFactory=TransformerFactorynewInstance();

        try {

            Transformer transformer = transFactorynewTransformer();

            transformersetOutputProperty("indent", "yes");

            DOMSource source=new DOMSource();

            sourcesetNode(doc);

            StreamResult result=new StreamResult();

            resultsetOutputStream(new FileOutputStream(fileName));

            

            transformertransform(source, result);

        } catch (TransformerConfigurationException e) {

            eprintStackTrace();

        } catch (TransformerException e) {

            eprintStackTrace();

        } catch (FileNotFoundException e) {

            eprintStackTrace();

        }   

    }

}

 

XML:

<xml version="10" encoding="GBK">

<books>

<book>

<name>哈里波特</name>

<price>10</price>

<memo>这是一本很好看的书。</memo>

</book>

<book id="B02">

<name>三国演义</name>

<price>10</price>

<memo>四大名著之一。</memo>

</book>

<book id="B03">

<name>水浒</name>

<price>6</price>

<memo>四大名著之一。</memo>

</book>

<book id="B04">

<name>红楼</name>

<price>5</price>

<memo>四大名著之一。</memo>

</book>

</books>

1、开MyEclipse,从菜单栏找到“Window”--->“Preferences(首选项)”;

2、在左侧导航菜单栏找到“MyEclipse”--->“Files and Editors”---->“XML”--->“XML

Catalog”;

3、在右边的界面中,选择“User Specified Entries”,点击右边的“Add”;

4、在d出的“Add XML Catalog Element”对话框中点击“File System”,为Location输入框添加XSD文件所在路径;

5、xsd文件添加后,在下面的“Key:”右边的文本框会自动添加一个URI,如Spring的为:

,如果没有自动添加,使用别的文本编辑器打开此xsd文件,找到相应的<xsd:schema xmlns>名称空间声明;

6、“Key Type:”右边的下拉框中有“Namespace Name”与“Schema Location”两个选项,

将Key Type置为Schema Location;如果是DTD,那里将会有三个类型:Public ID,System ID,URI;

7、在Key:右边的文本框中的URI后面加上/,再加上此xsd的名字,

如spring-beans-25xsd的key为:

8、点击“OK”保存后,即可看到“User Specified Entries”已有了所增加的xsd;

9、重启MyEclipse即可,注意如果提示不出来,并在状态栏的左下出现“Content Assist not available at the current location”,请在光标位置键入一个空格再使用Alt+/试试;

XmlNodeList xnl=docSelectNodes("//[@GlobalID='123']");//属性GlobalID=123的节点,不论节点在哪一级,节点叫什么名字

或XmlNodeList xnl=docSelectNodes("//RealTimeData[@GlobalID='123']");//属性GlobalID=123的RealTimeData节点,不论节点在哪一级,只要节点的名字叫RealTimeData

foreach(XmlNode xn in xnl)

{

xnInnerText//节点的值

}

主要就是知道怎么表达XML的路径

你可以参考一下

>

Map中List的XML写法是非常简单的,你只需要使用<map>和<list>元素来包裹整个Map中List,然后在<map>中嵌套<entry>,每一个<entry>都有一对<key>和<value>,把Map中的键-值对放在<key>和<value>里面。而List也是一样,你只需要使用<list>元素来包裹List,然后在<list>中嵌套<item>,每一个<item>中就是你想放进List的元素了。例如:

<map>

<entry>

<key>name</key>

<value>Bob</value>

</entry>

<entry>

<key>age</key>

<value>20</value>

</entry>

<list>

<item>One</item>

<item>Two</item>

<item>Three</item>

</list>

</map>

上面的XML文件,表明了一个Map中包含一个键-值对(name-Bob)和一个List(One, Two, Three)。希望这对你有帮助。

以上就是关于JAVA 生成xml格式,具体格式如下,请问JAVA方法怎么写全部的内容,包括:JAVA 生成xml格式,具体格式如下,请问JAVA方法怎么写、如下xml文件的xml schema 怎么写、C# XML 如何直接根据属性值 读取 对应的值 怎么写等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/10101063.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存