精华内容
下载资源
问答
  • QQ还没有被制裁的XML代码

    千次阅读 2021-05-28 22:44:54
    下面有的效果其实是动态的,但是我不会搞,所以都是截图的形式,哈哈哈 代码内的某些数据可以对照效果图自行修改。 搞这些的前提是要装xposed框架,面具或者太极、应用转身之类的然后装一个绿豆模块就可以用下面的...

    第一次做帖子,见谅!

          下面有的效果其实是动态的,但是我不会搞,所以都是截图的形式,哈哈哈  代码内的某些数据可以对照效果图自行修改。

       搞这些东西是有前提的,手机需要有Xposed框架或者面具给QQ植入模块才能发这种卡片代码,至于框架和模块…………我可以提供,但不一定成功。QQ:  鉴于之前有个**加我一张口就是国粹,这里我就不留联系方式了。

    不多说了,下面是示例!!!

    1,报时代码:

    {"app":"com.tencent.miniapp","desc":"","view":"all","ver":"1.0.0.89","prompt":"来报时啦","appID":"","sourceName":"","actionData":"","actionData_A":"","sourceUrl":"","meta":{"all":{"buttons":[{"action":"http:\/\/www.qq.com","name":"2021年5月25日  12:20:00"}],"jumpUrl":"","preview":"http:\/\/gchat.qpic.cn\/gchatpic_new\/543486646\/543486646-0-17A70505061636CEE684DF3842C7B6A8\/0?term=2&kp=1&pt=0&bo=4AEOAQAAAAACd70!&tl=1&vuin=2292380798&tm=1597590000&t=5#sce=14-1-1&rf=v1_ht5_qz_3.4.0_001_idc_b-4-0","summary":"\n----------整点报时----------\n每日一言:待至暮年归,挽手戏落日.","title":"整点报时"}},"config":{"forward":true},"text":"","extraApps":[],"sourceAd":"","extra":""}
    

    效果图

    2,视频代码(效果图是女娲动画片):

    {"app":"com.tencent.gamecenter.gameshare","desc":"","view":"noDataView","ver":"0.0.0.0","prompt":"爷要创造神话 ","appID":"","sourceName":"","actionData":"","actionData_A":"","sourceUrl":"","meta":{"shareData":{"scene":"SCENE_SHARE_VIDEO","jumpUrl":"https:\/\/attachments-cdn.shimo.im\/2q1Fsatwsa0yCsRk\/mmexport1587785783703.mp4","type":"video","url":"https:\/\/pvp.qq.com\/act\/a20161026nw\/movies\/movie.mp4"}},"config":{"forward":1},"text":"","extraApps":[],"sourceAd":"","extra":""

    效果图

    3,清屏代码

    <?xml version='1.0' encoding='UTF-8' standalone='yes' ?><msg serviceID="1" templateID="1234" action="web" brief="清屏!" sourceMsgId="2" url="" flag="2" adverSign="0" multiMsgFlag="0"><item layout="5" advertiser_id="0" aid="0"><picture cover="http://gchat.qpic.cn/gchatpic_new/0/0-0-FE78A07C337C18CA8744113A86A62AAF/0?term=2" w="0" h="0" /><title></title><summary></summary></item><item layout="6" advertiser_id="0" aid="0"><summary size="300" color="#EAFA04">远哥清屏专用</summary><hr hidden="false" style="15" /></item><source name="" icon="" action="" appid="-1" /></msg>

    效果图:

    4,送老婆活动代码

    <?xml version='1.0' encoding='UTF-8' standalone='yes' ?><msg serviceID="1" templateID="1" action="plugin" actionData="AppCmd://OpenContactInfouin=0" a_actionData="mqqapi://card/show_pslcard?src_type=internal&amp;source=sharecard&amp;version=1&amp;uin=对方的QQ号" i_actionData="mqqapi://card/show_pslcard?src_type=internal&amp;source=sharecard&amp;version=1&amp;uin=对方的QQ号" brief="领取老婆" sourceMsgId="0" url="" flag="0" adverSign="0" multiMsgFlag="0"><item layout="5" advertiser_id="0" aid="0"><picture cover="http://gchat.qpic.cn/gchatpic_new/0/0-0-FE78A07C337C18CA8744113A86A62AAF/0?term=2" w="0" h="0" /><title size="25" color="FF0000">恭喜获得老婆!</title></item><item layout="0" advertiser_id="0" aid="0"><hr hidden="false" style="0" /><title size="28" color="FF0000">点赞10" target="_blank" rel="noopener noreferrer nofollow" style="color: rgb(0, 0, 0);color: #000000;font-size: 11pt;"&gt;次即可获得!</title></item><source name="腾讯送老婆活动" icon="http://url.cn/JS8oE7" action="" appid="0" /></msg>

    效果图:

    5,送礼物代码

    {"app":"com.tencent.giftmall.giftark","desc":"","view":"giftArk","ver":"1.0.4.3","prompt":"[礼物]送你一份小惊喜","appID":"","sourceName":"","actionData":"","actionData_A":"","sourceUrl":"","meta":{"giftData":{"animationType":"0","arkBgUrl":"\/qzone\/space_item\/material\/QzoneGift\/org\/15\/17743\/ke.png","arkGuestBgUrl":"","boxZipUrl":"\/qzone\/qzact\/act\/external\/shijun\/aboxZipUrl.zip","desc":"在你心里横行霸道","giftMsg":"代码群:144944507","giftName":"小螃蟹蛋糕","giftParticleUrl":"\/aoi\/sola\/20190621172954_zsK9zgsnRM.png","giftPrice":"30","giftZipUrl":"\/qzone\/qzact\/act\/external\/shijun\/juxie.zip","inviteDetailUrl":"","isFree":"0","lottieUrl":"","msgId":"6852645984873405950","openIconUrl":"\/aoi\/sola\/20190621172954_O7hOMoNc5k.png","orderNum":"e419bacc-1f10-4ed2-afca-ab3824737b4d","sender":"1","toUin":"2658890354","total_amount":"0","unopenIconUrl":"\/aoi\/sola\/20190402111555_yWazmedH08.png"}},"config":{"ctime":1595505974,"forward":0,"token":"997074007defd76c7b55c4b4e545175b"},"text":"","extraApps":[],"sourceAd":"","extra":"{\"app_type\":1,\"appid\":1103584836}"}

    效果图:

    6,天气代码

    {"app":"com.tencent.weather","desc":"天气","view":"RichInfoView","ver":"0.0.0.1","prompt":"[应用]天气","appID":"","sourceName":"","actionData":"","actionData_A":"","sourceUrl":"","meta":{"richinfo":{"adcode":"","air":"64","city":"梦见猪","date":"520月1314日 周日","max":"99","min":"99","ts":"101180701","type":"201","wind":""}},"text":"","extraApps":[],"sourceAd":"","extra":""}
    

    7,恶搞 ”优质解答“代码:

    {"app":"com.tencent.miniapp","desc":"","view":"notification","ver":"0.0.0.1","prompt":"优质解答","appID":"","sourceName":"","actionData":"","actionData_A":"","sourceUrl":"","meta":{"notification":{"appInfo":{"img_s":"","img":"https:\/\/gchat.qpic.cn\/gchatpic_new\/3542097865\/916530575-2974795548-D027B498719D9E7C60A3C85B8A296EA7\/0?term=2","appName":"优质解答","ext":"","iconUrl":"http:\/\/gchat.qpic.cn\/gchatpic_new\/1099849972\/210215415-0-7F8A6769B10BA66AB90336D95F3CA972\/0?term=2","appType":4,"appid":1108249016},"button":[{"name":"我告诉你,你退群吧","action":""}],"emphasis_forword":"1"}},"text":"","extraApps":[],"sourceAd":"","extra":""}

    展开全文
  • 用vbs+xmldom实现的获取qq签名的脚本
  • 疯狂XML代码分2个包,第一部分。李刚著。
  • 关于数据库的xml代码

    2015-05-04 11:32:02
    关于数据库的xml代码,发错用之于是是是是
  • XML代码的编写(二)

    千次阅读 2019-08-28 08:51:56
    XML代码的编写(二) XML的4种解析方式  解析 XML 文件一般来说有两种底层形式,一种是基于树的结构来解析的称为DOM;另一种是基于事件流的形式称为Sax。而在这两种解析方式的基础上,基于底层api的更高级封装解析...

    XML代码的编写(二)

    XML的4种解析方式

      解析 XML 文件一般来说有两种底层形式,一种是基于树的结构来解析的称为DOM;另一种是基于事件流的形式称为Sax。而在这两种解析方式的基础上,基于底层api的更高级封装解析器也应用而生,比如面向Java的 JDom和 Dom4J。

    1、DOM(Document Object Model)

      DOM 是用与平台和语言无关的方式表示 XML 文档的官方 W3C 标准。DOM 是以层次结构组织的节点或信息片断的集合。这个层次结构允许开发人员在树中寻找特定信息。分析该结构通常需要加载整个文档和构造层次结构,然后才能做任何工作。由于它是基于信息层次的,因而 DOM 被认为是基于树或基于对象的。

      优点:

        ①、整个 Dom 树都加载到内存中了,所以允许随机读取访问数据。

        ②、允许随机的对文档结构进行增删。

      缺点:

        ①、整个 XML 文档必须一次性解析完,耗时。

        ②、整个 Dom 树都要加载到内存中,占内存。

      适用于:文档较小,且需要修改文档内容

     

    2、Sax(Simple API for XML)

      SAX处理的特点是基于事件流的。分析能够立即开始,而不是等待所有的数据被处理。而且,由于应用程序只是在读取数据时检查数据,因此不需要将数据存储在内存中。这对于大型文档来说是个巨大的优点。事实上,应用程序甚至不必解析整个文档;它可以在某个条件得到满足时停止解析。sax分析器在对xml文档进行分析时,触发一系列的事件,应用程序通过事件处理函数实现对xml文档的访问,因为事件触发是有时序性的,所以sax分析器提供的是一种对xml文档的顺序访问机制,对于已经分析过的部分,不能再重新倒回去处理.此外,它也不能同时访问处理2个tag,sax分析器在实现时,只是顺序地检查xml文档中的字节流,判断当前字节是xml语法中的哪一部分,检查是否符合xml语法并且触发相应的事件.对于事件处理函数的本身,要由应用程序自己来实现. SAX解析器采用了基于事件的模型,它在解析XML文档的时候可以触发一系列的事件,当发现给定的tag的时候,它可以激活一个回调方法,告诉该方法制定的标签已经找到。

      优点:

        ①、访问能够立即进行,不需要等待所有数据被加载。

        ②、只在读取数据时检查数据,不需要保存在内存中

        ③、不需要将整个数据都加载到内存中,占用内存少

        ④、允许注册多个Handler,可以用来解析文档内容,DTD约束等等。

      缺点:

        ①、需要应用程序自己负责TAG的处理逻辑(例如维护父/子关系等),文档越复杂程序就越复杂。

        ②、单向导航,无法定位文档层次,很难同时访问同一文档的不同部分数据,不支持XPath。

        ③、不能随机访问 xml 文档,不支持原地修改xml。

      适用于:文档较大,只需要读取文档数据。

     

    3、JDOM(Java-based Document Object Model)

      JDOM是处理xml的纯java api.使用具体类而不是接口。JDOM具有树的遍历,又有SAX的java规则。

      JDOM与DOM主要有两方面不同。首先,JDOM仅使用具体类而不使用接口。这在某些方面简化了API,但是也限制了灵活性。第二,API大量使用了Collections类,简化了那些已经熟悉这些类的Java开发者的使用。

      JDOM自身不包含解析器。它通常使用SAX2解析器来解析和验证输入XML文档(尽管它还可以将以前构造的DOM表示作为输入)。它包含一些转换器以将JDOM表示输出成SAX2事件流、DOM模型或XML文本文档。JDOM是在Apache许可证变体下发布的开放源码。

      优点:

        ①、使用具体类而不是接口,简化了DOM的API。

        ②、大量使用了Java集合类,方便了Java开发人员。

      缺点:

        ①、不能处理大于内存的文档.

        ②、API 简单,没有较好的灵活性

     

    4、DOM4J(Document Object Model for Java)

      虽然DOM4J代表了完全独立的开发结果,但最初,它是JDOM的一种智能分支。它合并了许多超出基本XML文档表示的功能,包括集成的XPath,支持XML Schema支持以及用于大文档或流化文档的基于事件的处理。它还提供了构建文档表示的选项,它通过DOM4J API和标准DOM接口具有并行访问功能。从2000下半年开始,它就一直处于开发之中。

          为支持所有这些功能,DOM4J使用接口和抽象基本类方法。DOM4J大量使用了API中的Collections类,但是在许多情况下,它还提供一些替代方法以允许更好的性能或更直接的编码方法。直接好处是,虽然DOM4J付出了更复杂的API的代价,但是它提供了比JDOM大得多的灵活性。

          在添加灵活性、XPath集成和对大文档处理的目标时,DOM4J的目标与JDOM是一样的:针对Java开发者的易用性和直观操作。它还致力于成为比JDOM更完整的解决方案,实现在本质上处理所有Java/XML问题的目标。在完成该目标时,它比JDOM更少强调防止不正确的应用程序行为。

          DOM4J是一个非常非常优秀的Java XML API,具有性能优异、功能强大和极端易用使用的特点,同时它也是一个开放源代码的软件。如今你可以看到越来越多Java软件都在使用DOM4J来读写XML,特别值得一提的是连Sun的JAXM也在用DOM4J。

      优点:

        ①、大量使用了Java集合类,方便Java开发人员,同时提供一些提高性能的替代方法。

        ②、支持XPath。查找节点特别快

        ③、灵活性高。

      缺点:

        ①、大量的使用了接口,API复杂,理解难。

        ②、移植性差。

     注:XPath是一门在 XML 文档中查找信息的语言。

     

    比较:

      1、 DOM4J性能最好,连Sun的JAXM也在用DOM4J。目前许多开源项目中大量采用DOM4J,例如大名鼎鼎的Hibernate也用DOM4J来读取XML配置文件。如果不考虑可移植性,那就采用DOM4J。

      2、JDOM和DOM在性能测试时表现不佳,在测试10M文档时内存溢出,但可移植。在小文档情况下还值得考虑使用DOM和JDOM.虽然JDOM的开发者已经说明他们期望在正式发行版前专注性能问题,但是从性能观点来看,它确实没有值得推荐之处。另外,DOM仍是一个非常好的选择。DOM实现广泛应用于多种编程语言。它还是许多其它与XML相关的标准的基础,因为它正式获得W3C推荐(与基于非标准的Java模型相对),所以在某些类型的项目中可能也需要它(如在JavaScript中使用DOM)。

      3、SAX表现较好,这要依赖于它特定的解析方式-事件驱动。一个SAX检测即将到来的XML流,但并没有载入到内存(当然当XML流被读入时,会有部分文档暂时隐藏在内存中)。

      综上所述:如果XML文档较大且不考虑移植性问题建议采用DOM4J;如果XML文档较小则建议采用JDOM;如果需要及时处理而不需要保存数据则考虑SAX。

     

    实例

      第一步:建立一个 student.xml 文件,我们以这个文件通过上面的四种解析方式来对比分析

    <?xml version="1.0" encoding="UTF-8"?>
    <students>
        <student>
            <name>Tom</name>
            <age>11</age>
        </student>
        <student>
            <name>Bob</name>
            <age>22</age>
        </student>
        <student>
            <name>Marry</name>
            <age>23</age>
        </student>
    </students>

     

    DOM 解析(JDK已经自带jar包,不需要额外导入!)

    import java.io.FileOutputStream;
     
    import javax.xml.parsers.DocumentBuilder;
    import javax.xml.parsers.DocumentBuilderFactory;
    import javax.xml.transform.Transformer;
    import javax.xml.transform.TransformerFactory;
    import javax.xml.transform.dom.DOMSource;
    import javax.xml.transform.stream.StreamResult;
     
    import org.w3c.dom.Document;
    import org.w3c.dom.Element;
    import org.w3c.dom.Node;
    import org.w3c.dom.NodeList;
     
    public class DomParser{
         
        /**
         * 解析器读入整个文档,然后构建一个驻留内存的树结构,
         * 该方法返回 Document 对象,然后我们可以通过 这个对象来操作文档
         */
        public Document getDocument(String fileName) throws Exception{
            //1.创建解析工厂
            DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
            //2.得到解析器
            DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
            //3.得到文档对象
            Document document = dBuilder.parse(fileName);
             
            return document;
        }
         
        //读取xml文档中的数据
        public void read(String fileName) throws Exception{
            //获取 Document 对象
            Document document = new DomParser().getDocument(fileName);
             
            //获取<name></name>的节点
            NodeList nameNode = document.getElementsByTagName("name");
            //获取<name sex="xxx"></name>节点的sex属性
            Element element = (Element) document.getElementsByTagName("name").item(0);
            System.out.println(element.getAttribute("sex"));//xxx
             
            for(int i = 0 ; i < nameNode.getLength() ;i++){
                System.out.println(nameNode.item(i).getTextContent());
            }
            /**结果为
             * Tom
             * Bob
             * Marry
             */
             
            //获取文档的根元素对象
            Element rootElementName = document.getDocumentElement();
            System.out.println(rootElementName.getNodeName()); //students
             
            //得到根节点
            Node root = document.getElementsByTagName(rootElementName.getNodeName()).item(0);
            list(root);
             
        }
         
        //打印所有标签
        private void list(Node root) {
            if(root instanceof Element){
                System.out.println(root.getNodeName());
            }
            NodeList list = root.getChildNodes();
            for(int i = 0 ; i < list.getLength() ; i++){
                Node child = list.item(i);
                list(child);
            }
        }
         
        //向 xml 文件中增加节点和属性
        public void add(String fileName) throws Exception{
            //获取 Document 对象
            Document document = new DomParser().getDocument(fileName);
             
            //创建节点
            Element sex = document.createElement("sex");
            sex.setTextContent("男");
             
            //把创建的节点添加到第一个<student></student>标签上
            Element student = (Element) document.getElementsByTagName("student").item(0);
            student.appendChild(sex);
             
            //在<name></name>中增加属性 <name address="xxx"></name>
            Element name = (Element) document.getElementsByTagName("name").item(0);
            name.setAttribute("address", "xxx");
             
            //把更新后的内存写入xml文档中
            TransformerFactory tfFactory = TransformerFactory.newInstance();
            Transformer tFormer = tfFactory.newTransformer();
            tFormer.transform(new DOMSource(document),
                    new StreamResult(new FileOutputStream("src/student.xml")));
        }
         
        //向 xml 文件中删除节点和属性
        public void delete(String fileName) throws Exception{
            //获取 Document 对象
            Document document = new DomParser().getDocument(fileName);
             
            //得到要删除的第一个<name></name>节点
            Element name = (Element) document.getElementsByTagName("name").item(0);
            //得到要删除的第一个<name></name>节点的父节点
            //Element student = (Element) document.getElementsByTagName("student").item(0);
            //student.removeChild(name);
            //上面两步可以简写为
            name.getParentNode().removeChild(name);
             
            //在<name></name>中删除属性 <name address="xxx"></name>
            name.removeAttribute("address");
             
            //把更新后的内存写入xml文档中
            TransformerFactory tfFactory = TransformerFactory.newInstance();
            Transformer tFormer = tfFactory.newTransformer();
            tFormer.transform(new DOMSource(document),
                    new StreamResult(new FileOutputStream("src/student.xml")));
        }
     
         
        //向 xml 文件中更新节点和属性
        public void update(String fileName) throws Exception{
            //获取 Document 对象
            Document document = new DomParser().getDocument(fileName);
             
            //得到要删除的第一个<name></name>节点
            Element name = (Element) document.getElementsByTagName("name").item(0);
            //在<name></name>中更新属性 <name address="xxx"></name>为<name address="yyy"></name>
            name.setAttribute("address", "yyy");
            //更新name节点的文字为VAE,即<name>vae</name>
            name.setTextContent("vae");
             
            //把更新后的内存写入xml文档中
            TransformerFactory tfFactory = TransformerFactory.newInstance();
            Transformer tFormer = tfFactory.newTransformer();
            tFormer.transform(new DOMSource(document),
                    new StreamResult(new FileOutputStream("src/student.xml")));
        }
    }

     

    SAX 解析(JDK已经自带jar包,不需要额外导入!)

    import javax.xml.parsers.ParserConfigurationException;
    import javax.xml.parsers.SAXParser;
    import javax.xml.parsers.SAXParserFactory;
     
    import org.xml.sax.Attributes;
    import org.xml.sax.ContentHandler;
    import org.xml.sax.Locator;
    import org.xml.sax.SAXException;
    import org.xml.sax.XMLReader;
    import org.xml.sax.helpers.DefaultHandler;
     
     
    public class SaxParser{
         
        public static void main(String[] args) throws Exception {
            //1.创建解析工厂
            SAXParserFactory spFactory = SAXParserFactory.newInstance();
            //2.得到解析器
            SAXParser sParser = spFactory.newSAXParser();
            //3.得到读取器
            XMLReader xmlReader = sParser.getXMLReader();
             
            //4.设置内容处理器
            xmlReader.setContentHandler(new TagDefaultHandler());
             
            //5.读取 XML 文档内容
            xmlReader.parse("src/student.xml");
        }
    }
     
    //第一种方法:继承接口ContentHandler 得到 XML 文档所有内容
    class ListHandler implements ContentHandler{
     
        @Override
        public void startElement(String uri, String localName, String qName,
                Attributes atts) throws SAXException {
            System.out.println("<"+qName+">");
        }
     
        @Override
        public void characters(char[] ch, int start, int length)
                throws SAXException {
            System.out.println(new String(ch,start,length));
        }
         
        @Override
        public void endElement(String uri, String localName, String qName)
                throws SAXException {
            System.out.println("</"+qName+">");
        }
     
        @Override
        public void setDocumentLocator(Locator locator) {
        }
     
        @Override
        public void startDocument() throws SAXException {
        }
     
        @Override
        public void endDocument() throws SAXException {
        }
     
        @Override
        public void startPrefixMapping(String prefix, String uri)
                throws SAXException {
        }
     
        @Override
        public void endPrefixMapping(String prefix) throws SAXException {
        }
     
        @Override
        public void ignorableWhitespace(char[] ch, int start, int length)
                throws SAXException {
        }
     
        @Override
        public void processingInstruction(String target, String data)
                throws SAXException {
        }
     
        @Override
        public void skippedEntity(String name) throws SAXException {
        }
         
    }
     
     
    //使用继承类 DefaultHandler 更好
    class TagDefaultHandler extends DefaultHandler{
        //当前解析的是什么标签
        private String currentTag;
        //想获得第几个标签的值
        private int tagNumber=0;
        //当前解析的是第几个标签
        private int currentNumber=0;
        @Override
        public void startElement(String uri, String localName, String qName,
                Attributes attributes) throws SAXException {
            currentTag = qName;
            //当前解析的name 标签是第几个
            if("name".equals(currentTag)){
                currentNumber++;
                System.out.println(currentNumber);
            }
        }
         
        @Override
        public void characters(char[] ch, int start, int length)
                throws SAXException {
            //打印所有name标签的值
            if("name".equals(currentTag)){
                System.out.println(new String(ch,start,length));
            }
            //想获得 第二个name标签的值
            tagNumber = 2;
            if("name".equals(currentTag)&&currentNumber==tagNumber){
                System.out.println(new String(ch,start,length));
            }      
        }
         
        @Override
        public void endElement(String uri, String localName, String qName)
                throws SAXException {
            currentTag = null;
        }
    }

    解决安卓SAX乱码

    public static String getStringByUrl(String getUrl) {
    		// String getUrl =
    		StringBuffer sb = new StringBuffer();
    		InputStreamReader isr = null;
    		BufferedReader br = null;
    		try {
    			URL url = new URL(getUrl);
    			URLConnection urlConnection = url.openConnection();
    			urlConnection.setReadTimeout(60000);
    			urlConnection.setAllowUserInteraction(false);
    			/*isr = new InputStreamReader(url.openStream());*/
    			isr = new InputStreamReader(url.openStream(),Charset.forName("UTF-8"));
    			br = new BufferedReader(isr);
    			String line;
    			while ((line = br.readLine()) != null) {
    				sb.append(line);
    			}
    		} catch (IOException e) {
    			e.printStackTrace();
    		} finally {
    			if (isr != null) {
    				try {
    					isr.close();
    				} catch (IOException e) {
    					// TODO Auto-generated catch block
    					e.printStackTrace();
    				}
    			}
    			if (br != null) {
    				try {
    					br.close();
    				} catch (IOException e) {
    					// TODO Auto-generated catch block
    					e.printStackTrace();
    				}
    			}
    		}
    		return sb.toString();
    	}

     

    DOM4J 解析

      JAR包下载链接:http://pan.baidu.com/s/1b5L9AA 密码:wg2l

    import java.io.File;
    import java.io.FileOutputStream;
    import org.dom4j.Document;
    import org.dom4j.Element;
    import org.dom4j.io.OutputFormat;
    import org.dom4j.io.SAXReader;
    import org.dom4j.io.XMLWriter;
    import org.junit.Test;
     
    public class DOM4JParser {
         
        //读取第二个<name><name>
        @Test
        public void read() throws Exception{
            SAXReader reader = new SAXReader();
            Document document = reader.read(new File("src/student.xml"));
             
            //得到根节点
            Element root = document.getRootElement();
            //得到第二个<student><student>节点
            Element student = (Element)root.elements("student").get(1);
            //获取<name><name>中间的值
            String value = student.element("name").getText();
            System.out.println(value);//Bob
            //获取<name sex="xxx"><name>中间的sex值
            String sexValue = student.element("name").attributeValue("sex");
            System.out.println(sexValue);//xxx
        }
         
         
        //增加节点
        @Test
        public void add() throws Exception{
            SAXReader reader = new SAXReader();
            Document document = reader.read(new File("src/student.xml"));
             
            Element student = document.getRootElement().element("student");
            student.addElement("schoolName").setText("湖北");
             
            OutputFormat format = OutputFormat.createPrettyPrint();
            format.setEncoding("utf-8");
             
            XMLWriter writer = new XMLWriter(new FileOutputStream("src/student.xml"),format);
            writer.write(document);
            writer.close();
             
        }
         
     
        //删除节点
        @Test
        public void delete() throws Exception{
            SAXReader reader = new SAXReader();
            Document document = reader.read(new File("src/student.xml"));
             
            Element student = (Element)document.getRootElement().elements("student").get(1);
            student.element("schoolName").setText("湖南");
             
            OutputFormat format = OutputFormat.createPrettyPrint();
            format.setEncoding("utf-8");
             
            XMLWriter writer = new XMLWriter(new FileOutputStream("src/student.xml"),format);
            writer.write(document);
            writer.close();
             
        }
         
        //修改节点
        @Test
        public void update() throws Exception{
            SAXReader reader = new SAXReader();
            Document document = reader.read(new File("src/student.xml"));
             
            Element student = document.getRootElement().element("student");
            Element schoolName = student.element("schoolName");
            schoolName.getParent().remove(schoolName);
             
            OutputFormat format = OutputFormat.createPrettyPrint();
            format.setEncoding("utf-8");
             
            XMLWriter writer = new XMLWriter(new FileOutputStream("src/student.xml"),format);
            writer.write(document);
            writer.close();
             
        }
     
    }

     

    XPath 简介:

       由于 DOM4J 是支持 XPath,那么 XPath 是什么呢?

      XPath 是一门在 XML 文档中查找信息的语言。使用路径表达式来选取 XML 文档中的节点或者节点集。这些路径表达式和我们在常规的电脑文件系统中看到的表达式非常相似。

      我们以一个例子看一下用法:

    import java.io.File;
    import java.util.List;
     
    import org.dom4j.Document;
    import org.dom4j.Node;
    import org.dom4j.io.SAXReader;
     
    public class XPathParser {
         
        public static void main(String[] args) throws Exception {
            SAXReader reader = new SAXReader();
            Document document = reader.read(new File("src/student.xml"));
             
            //得到第一个 name 节点的值
            String nameValue = document.selectSingleNode("//name").getText();
            System.out.println(nameValue); //Tom
             
            //得到所有 name 节点的值
            List<Node> nameValues = document.selectNodes("//name");
            for(Node obj : nameValues){
                System.out.println(obj.getText());//Tom   Bob  Marry
            }
             
        }
     
    }

     

     

     

     

     

     

     

     

     

     

    展开全文
  • xml文件代码

    2016-10-28 11:47:27
    推荐大家下载
  • xml客户登录代码

    2014-06-02 11:03:51
    xml文档有关于客户登录的一些代码,客户登录的一些代码,还有注册代码
  • xml编码和解密代码

    2018-12-20 10:22:22
    xml编码和解密代码
  • LiquidXMLStudio映射XML到C++代码

    人类社会,据马克思所说,三要素:

    生产力,生产关系和财富再分配。


    虽然说,总体来说,我个人认为,财富再分配,是核心是重,但对于吊丝来说,还是关注一下生产力吧。至于爸爸是李刚刚的,考虑一下基它的吧。


    生产力的核心,就是工具。


    所以,做为一个程序员,掌握工具,是很重要的。以前我招人,也是理论和工具并重。一个不注重工具的人,往往是一个不注重实践的人。赵括理论还不错,但打起仗来,就不成。其中一个原因,就是实践不够,或是不重视实践。


    这里我总结一下我自己的心理。如果你不幸进来看到我写的文字,先忍一下我的罗索吧。


    XML的工具,最近我用了用,几个XMLSpy和LiquidXMLStudio是主要用的两种。

    ********************

    Let's Start:

    先看一个网页:

    http://en.wikipedia.org/wiki/Comparison_of_XML_editors

    这也是我的习惯。

    不过这里面的列,不是很全。

    我是希望有几个方面:

    * 能生成C++代码,这个功能在这里被称做:map。map的意思是说从xsd映射到代码。当然,也有其它的含义,但一般不会用map,比如xml to xml, xml to DB. 都会写清楚,但只有map,现在看来就是这个意思。之所以,要生成C或C++代码,是因为我底层的解析器就是用C写的。不想在这个层面来转换。

    因为XML本身,才是接口信息的承载。没必要,再加入一种新语言。

    * 如果生成的代码,是基于开源的XML库就更好的。

    目前来看,经过调研,目前最好的XML开源库,就是libxml2和xerces. 不过,总体来说,如果我自己来做,会选libxml2.

    因为这个库是基于C的,也便于跨平台。

    * 其它的XML自动化编辑工具。这些就不用说了。


    但事实上,没有找到达到这种要求的编辑器。


    除XMLSpy 和 LiquidXMLStudio 以外,发现还有两个比较强大,其实,哪个强大,你只需要在这里看看哪个最贵就可以了。

    http://en.wikipedia.org/wiki/Comparison_of_XML_editors


    不过,我是没看懂,为什么有的那么贵。看来,程序员,总是站在程序员的角度来看世界,里面最贵的MadCap Flare,比LiquidXMLStudio贵了一个量级。

    好象MadCap FlareXMLSeedXML Schema Editor

    类似,都是用于非程序员的。他们贵的原因,都是因为真真正正在用XML的含义:完备性的文档(不是程序员的叫法:可扩展性ML)。是给不是程序员的人用的,看来也说明,程序员普遍都是吊丝。外国可能也是如此。


    哈。吊丝们都回回神,不多说了,所以关注点来是回到XMLSpy 和 LiquidXMLStudio。(为什么我用吊丝?因为QQ拼音,因为高大上的原因,打不出来这个词)。

    让我吃惊的是,XMLSpy好贵。快赶上非程序员用的。

    但,我这没有最新版的2014,据说也是可以完成XML到C++的MAP.


    所以,只用到了LiquidXMLStudio。

    LiquidXMLStudio 可以映射各种语言,只是我用到了C++。


    至于如何操作,我不写了,看这个页面:

    http://www.liquid-technologies.com/Liquid-Products/LearnAbout/XmlDataBinding.aspx


    没有被墙。


    忘了说,这是我最关注的一个要点

    * 没有被墙。

    下一个,当然是,有D版的。

    然后,最好有vs 2003以下版本的。能在XP运行的。


    以上就是我的要求。

    ***********************************************************************

    经过调研,没有达到要求的,暂时。

    但xmlstudio2011 最合适,因为有破解,可以生成C++代码。

    用的虽然不是开源的XML库,但也够用了。

    ***********************************************************************

    以下是示例代码,最关键是这几句

    		BookStoreLib::CBookstorePtr spBS = BookStoreLib::CBookstore::CreateInstance();
    		BookStoreLib::CBookTypePtr spBook = spBS->GetBook()->Add();
    		spBook->SetTitle(_T("The Autobiography of Benjamin Franklin"));
    		spBook->SetPrice(8.99);
    		spBook->SetPublicationdate(LtXmlLib12::CDateTime(1981, 5, 11));
    		spBook->SetISBN(_T("1-861003-11-0"));
    		spBook->GetAuthor()->SetFirst_name(_T("Benjamin"));
    		spBook->GetAuthor()->SetLast_name(_T("Franklin"));
    		spBook->SetGenre(_T("autobiography"));
    		std::tstring strXml = spBook->ToXml();

    1. 打开一个XSD,然后:打开向导:

    2. 选择C++语言


    3. 可以修改一些信息,可选



    4. 填加一个测试用的XML文件。

     

    5. OK 了,打开工程后

     


    6. 打开工程,进行一点编码。Liquid会自动创建一个chm帮助文档,这个我太喜欢了。

    照着下面这样,你就可以生成一个可以工作的例子了。

    对了,我所选的xml是在示例工程下面。

    D:\Program Files (x86)\Liquid Technologies\Liquid XML 2014\Examples\BookStore\Schemas\BookStore.xsd

    D:\Program Files (x86)\Liquid Technologies\Liquid XML 2014\Examples\BookStore\Data Files\BookStoreSample.xml



    **********************************************

    		// create an instance of the class to load the XML file into
    		bs::CBookstorePtr elm = bs::CBookstore::CreateInstance();
    
    		// load the xml from a file into the object (the root element in the
    		// xml document must be <bookstore>.
    		elm->FromXmlFile(lpctFilename);
    
    //--------<haoyujie>--------------
    		bs::CBookTypePtr spBook = elm->GetBookCol()->Add();
    		spBook->SetTitle(_T("The Autobiography of Benjamin Franklin"));
    		spBook->SetPrice(8.99);
    		spBook->SetPublicationdate(LtXmlLib12::CDateTime(1981, 5, 11));
    		spBook->SetISBN(_T("1-861003-11-0"));
    		spBook->GetAuthor()->SetFirst_name(_T("Benjamin"));
    		spBook->GetAuthor()->SetLast_name(_T("Franklin"));
    		spBook->SetGenre(_T("autobiography"));
    //--------</haoyujie>--------------


    *********************************************

    #include "stdafx.h" 
    #include "../BookStoreLib.h" 
    #include "../BookStoreLib/Bookstore.h" 
    
    using namespace LtXmlLib12;
    
    // forward declarations
    void SimpleTestBookStoreLibCBookstore(LPCTSTR);
    void WriteTest();
    void ReadTest();
    
    /// <summary>
    /// The main entry point for the application.
    /// </summary>
    int main(int argc, char* argv[])
    {
    	WriteTest();
    	ReadTest();
    
    	_tprintf(_T("\n\nPress a key to finish"));
    	getchar();
    
    	return 0;
    }
    		
    void WriteTest()
    {
    	try
    	{
    		_tprintf(_T("\nCreating an XML document...\n"));
    
    		// to create the XML document from scratch
    		BookStoreLib::CBookstorePtr spBS = BookStoreLib::CBookstore::CreateInstance();
    		BookStoreLib::CBookTypePtr spBook = spBS->GetBook()->Add();
    		spBook->SetTitle(_T("The Autobiography of Benjamin Franklin"));
    		spBook->SetPrice(8.99);
    		spBook->SetPublicationdate(LtXmlLib12::CDateTime(1981, 5, 11));
    		spBook->SetISBN(_T("1-861003-11-0"));
    		spBook->GetAuthor()->SetFirst_name(_T("Benjamin"));
    		spBook->GetAuthor()->SetLast_name(_T("Franklin"));
    		spBook->SetGenre(_T("autobiography"));
    		std::tstring strXml = spBook->ToXml();
    
    		_tprintf(_T("\nThis is the XML:\n%s"), strXml.c_str());
    	}
    	catch (CLtException& e)
    	{
    		// Note : exceptions are likely to contain inner exceptions
    		// that provide further detail about the error, GetFullMessage
    		// concatantes the messages from them all.
    		_tprintf(_T("Error - %s\n"), e.GetFullMessage().c_str());
    	}
    }
    
    void ReadTest()
    {
    	try
    	{
    		_tprintf(_T("\nReading an existing XML document...\n"));
    
    		// to create the XML document from scratch
    		BookStoreLib::CBookstorePtr spBS = BookStoreLib::CBookstore::CreateInstance();
    		spBS->FromXmlFile(_T("..\\..\\..\\BookStoreSample.xml"));
    
    		for (BookStoreLib::CBookTypeCol::iterator itr = spBS->GetBook()->begin();
    			 itr != spBS->GetBook()->end();
    			 itr++)
    		{
    			BookStoreLib::CBookTypePtr spBook = *itr;
    
    			_tprintf(_T("Book Title           %s\n"), spBook->GetTitle().c_str());
    			_tprintf(_T("    Price            %f\n"), spBook->GetPrice());
    			_tprintf(_T("    Author           %s %s\n"), spBook->GetAuthor()->GetFirst_name().c_str(), spBook->GetAuthor()->GetLast_name().c_str());
    			if (spBook->IsValidPublicationdate())
    				_tprintf(_T("    Publicationdate  %s\n"), spBook->GetPublicationdate().ToString().c_str());
    			else                    
    				_tprintf(_T("    Publicationdate  Not Listed\n"));
    			if (spBook->IsValidISBN())
    				_tprintf(_T("    ISBN             %s\n"), spBook->GetISBN().c_str());
    			else                    
    				_tprintf(_T("    ISBN             Not Listed\n"));
    			if (spBook->IsValidGenre())
    				_tprintf(_T("    Genre            %s\n"), spBook->GetGenre().c_str());
    			else                    
    				_tprintf(_T("    Genre            Not Listed\n"));
    		}
    	}
    	catch (CLtException& e)
    	{
    		// Note : exceptions are likely to contain inner exceptions
    		// that provide further detail about the error, GetFullMessage
    		// concatantes the messages from them all.
    		_tprintf(_T("Error - %s\n"), e.GetFullMessage().c_str());
    	}
    }
    
    
    
    
    
    

    展开全文
  • C#代码生成XML自带注释。
  • C#XML入门经典源代码是C#编程人员必备的XML技能 勾月科技www.gouyue.net QQ17878387
  • 城市对应天气代码编码XML文件 城市对应天气代码编码XML文件 城市对应天气代码编码XML文件 城市对应天气代码编码XML文件
  • 最新中国地域XML(含邮编,区号,行政区划代码)非常详细,
  • 内容索引:.NET源码,其它类别,XML,QQ群发布 简易QQ群发布系统XML数据库版,运行截图如上所示,源代码开源,不但可以满足需要者的应用,而且也是学习的好素材。  本QQ群发布系统基于三层架构,XML作为数据存储,可以...
  • C# 实例 XML添加 XML添加 XML删除 XML添加删除修改 源代码 本人QQ:280067279,加时注明:CSDN,我也想多认识些编程的朋友.
  • 修改QQ相关XML文件以美观文字效果

    千次阅读 2011-10-17 08:00:00
    ╮转身倾生一笑为伊人 ...找到qq根目录,有个I18N的文件夹打开--2052--PreLoad什么的,编辑它即可  无聊的生活总是会做些无聊的事情 【 】 Jave作品,转载请注明转载处:http://blog.

    <String id="LoginPanel_Account">
    		╮转身倾生一笑为伊人
    	</String>
    	<String id="LoginPanel_Password">
    		只为你含颜浅浅的笑ゝ
    	</String>
    	<String id="Product_Name" fmt="true">
    		$_PNAME_V_SV$
    	</String>
    	<String id="MainFrame_Title" fmt="true">
    		_为你含颜浅浅的笑
    	</String>

    贴出部分代码,其实就是修改一些原版的文字,甚是简单

    找到qq根目录,有个I18N的文件夹打开--2052--PreLoad什么的,编辑它即可

     无聊的生活总是会做些无聊的事情



    Jave作品,转载请注明转载处:http://blog.csdn.net/jave_/article/details/6879917

     

    展开全文
  • QQ通过xml卡片自动探测对方ip

    千次阅读 2020-10-16 17:24:06
    起因是这样的,某一天我像往常一样刷着qq,突然在之前加的一个qq机器人群发现一个机器人发出这样一张卡片:谁在窥屏。我心想难不成你还真能知道我在窥屏?几秒钟后我傻眼了,该机器人返回了几个ip和浏览器ua信息,...
  • 一个Android登陆/注册XML布局文件代码

    千次阅读 2015-12-23 22:24:25
    一个Android登陆/注册XML布局文件代码 通常在APP开发中不可避免要涉及到登陆/注册xml布局文件的编码实现,这些Android APP登陆/注册XML布局文件代码倒不是很难,但是要在xml布局写代码实现UI设计要求的各种颜色、...
  • XML配置的QQ菜单程序

    2008-06-09 11:45:29
    WEB工程最常见的菜单程序,希望对大家有所帮助。本代码只供学习参考之用,切勿用于商业用途。
  • 点击链接跳转到加QQ好友链接怎么生成的? ... http://wpa.qq.com/msgrd?v=3&amp;uin=2445408174&amp;site=qq&amp;...其中uin=2445408174 这后面的是个人QQ,你可以更换成...点击链接跳转到加QQ代码是怎么...
  • 随时随地阅读更多技术实战干货,获取项目源码、学习资料,请关注源代码社区公众号(ydmsq666)、博主微信(guyun297890152)、QQ技术交流群(183198395)。 本文接着上文对前面的示例进行优化,在前面的build.xml中,...
  • 全屏显示的flash+xml相册画廊代码
  • qq音乐源代码

    热门讨论 2012-04-28 21:28:35
    自己编写的一个QQ音乐播放器。 基本功能都实现了 还不错 希望对大家有用
  • 完本教程,您就可以自定义您的QQ界面,甚至更换语言。首先推荐翻译网站:谷歌翻译。可以用它制作QQ德文版、韩文版、意大利版。1. 本人安装的是QQ2010 SP1,安装在D盘。2. 找到 D:/Program Files/Tencent/QQ/I18N/...
  • XML

    千次阅读 2016-12-11 14:19:26
    1、xml的简介(了解) HTML - 中文名称:超文本标记语言 - 优点:...XML ... 作用:保存或传输数据,不是用来显示数据的 3、xml的应用:主要功能,为了存储数据 * 不同的系统之间传输数据 *qq之间数据的传输
  • 分享一个操作xml代码

    千次阅读 2013-05-17 08:52:45
    了一个CMS系统,当然大多都会有这样的功能。加入xml格式如下: 1 false false 1200 true 1024 10 5 model就不写了,类库: using System; using Syste
  • xml文件 <?xml version=1.0 encoding=utf-8?> <id>23 开心的路飞 男 <face>face/43.jpg <email>123@qq.com</email> <qq>1212121212</qq> php解析XML获取标签中的值 /* * _get_xml 获取的XML文件 *...
  • JS+XML打造QQ个性通信录

    千次阅读 2006-10-19 02:02:00
    JS+XML打造QQ个性通信录 本文大概介绍用JS操纵XML实现具有查询功能的通信录。而且可以把它嵌入到QQ面板。 主要有 Communication.htm,Communication.xml ,Communication.js 三个文件。 首先是存放数据的文件 ...
  • XML的增删改查已经实现,消除了删除数据后而导致留下空标记的Debug,可直接充当小型数据库的作用,运用十分灵活, 如有什么问题,请与我联系QQ:29992379(常用),29992579

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 112,908
精华内容 45,163
关键字:

qq如何看xml代码