ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Java Sax XML解析器,解析XML标记内的自定义“值”?

2019-10-23 14:01:31  阅读:268  来源: 互联网

标签:parsing saxparser java xml sax


在此之前,我没有对XML进行过多的工作,所以也许我对适当术语的不了解正在损害我对如何执行此操作的搜索.我有下面的代码片段,用于解析一个XML文件,如下所示.问题在于,它仅在< Tag> Value< / Tag>中选择XML值.但不适用于以下需要获取TagValue值的情况,在这种情况下,该值将为“ Russell Diamond”.

如果有人可以提供有关如何获得自定义值的帮助,我将不胜感激.谢谢.

<Tag TagName="#Subject" TagDataType="Text" TagValue="Russell Diamond"/>

我正在使用的代码段:

public void printElementNames(String fileName) throws IOException {
    //test write to file
       FileWriter fstream = new FileWriter("/home/user/Desktop/readEDRMtest.txt");
        final BufferedWriter out = new BufferedWriter(fstream);


    //

    try {
        SAXParserFactory parserFact = SAXParserFactory.newInstance();
        SAXParser parser = parserFact.newSAXParser();
        System.out.println("XML Elements: ");
        DefaultHandler handler = new DefaultHandler() {
            public void startElement(String uri, String lName, String ele,
                    Attributes attributes) throws SAXException {
                // print elements of xml
                System.out.println(ele);
                try {
                    out.write(ele);
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }

             public void characters(char ch[], int start, int length)
             throws SAXException {


                System.out.println("Value : "
                    + new String(ch, start, length));
                try {
                    out.write("Value : "
                            + new String(ch, start, length));
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }

            }

        };

解决方法:

您想研究提取属性.搜索该内容,您将找到答案.

DefaultHandler类的startElement(…)方法传递一个称为attribute的参数,该参数引用Attribute对象. API for the Attribute interface将描述如何从该对象中提取所需的信息.

例如:

out.write(attributes.getValue("TagValue"));

标签:parsing,saxparser,java,xml,sax
来源: https://codeday.me/bug/20191023/1913404.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有