首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在使用JDOM2解析XML时忽略注释内容

如何在使用JDOM2解析XML时忽略注释内容
EN

Stack Overflow用户
提问于 2015-07-12 07:01:18
回答 1查看 605关注 0票数 4

在使用JDOM解析content.Is时,我遇到了一些问题,当我试图在那里检索content.Is时,JDOM给出了注释行,这样我们就可以忽略这些注释行了。

Java代码:

代码语言:javascript
复制
SAXBuilder jdomBuilder = new SAXBuilder();
    // jdomDocument is the JDOM2 Object
    Document jdomDocument = jdomBuilder.build("C:/manu/WebservicesWS/DynamicXmlParse/src/PO_XML.xml");
    // The root element is the root of the document. we print its name
    System.out.println(jdomDocument.getRootElement().getName()); // prints
                                                                    // "rss"
    Element rss = jdomDocument.getRootElement();
    System.out.println(rss.getNamespaceURI());
    List<Element> rssChildren = rss.getChildren();
    // getElement(rssChildren);
    for (int i = 0; i < rssChildren.size(); i++) {
        Element rssChild = rssChildren.get(i);
        System.out.println(rssChild.getName());// prints 'title' and 'link'
        List<Content> rssContents = rssChild.getContent();
        for (int j = 0; j < rssContents.size(); j++) {
            Content content = rssContents.get(j);
            System.out.println(content.getValue());
        }
    }

XML结构

代码语言:javascript
复制
<interchange-control-header>
    <control-number>2</control-number>
    <sender-id>ZZ:IQAAOBUYER7</sender-id>
    <receiver-id>ZZ:33347456972</receiver-id>
    <!--sender-id>ZZ:IQAAOBUYER2</sender-id>
    <receiver-id>ZZ:IQAAOSUPPLIER2</receiver-id>        
    <sender-id>IQAOrionBuyer</sender-id>
    <receiver-id>IQAOrionSupplier</receiver-id-->           
    <date-time>2012-06-29T09:30:47-05:00</date-time>
    <control-version>1</control-version>
    <usage-indicator>T</usage-indicator>
    <is-copy>0</is-copy>
</interchange-control-header>

电流输出

代码语言:javascript
复制
interchange-control-header
2
ZZ:IQAAOBUYER7
ZZ:33347456972
sender-id>ZZ:IQAAOBUYER2</sender-id>
    <receiver-id>ZZ:IQAAOSUPPLIER2</receiver-id>        
    <sender-id>IQAOrionBuyer</sender-id>
    <receiver-id>IQAOrionSupplier</receiver-id
2012-06-29T09:30:47-05:00
1
T
0

所需产出:

代码语言:javascript
复制
interchange-control-header
2
ZZ:IQAAOBUYER7
ZZ:33347456972
2012-06-29T09:30:47-05:00
1
T
0
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-07-12 12:02:29

注释被认为是XML文档的一个可识别的部分,还有一些更明显的东西,比如元素。其他需要注意的内容是处理指令、文本和实体引用。

当您对getContent元素调用rssChild时,您将得到注释内容,它的值是该内容中的文本。

似乎您只想打印出每个子元素的文本内容,而不是所有内容。

获取所有子元素的简单方法是使用 method (而不是getContent)。你已经在其他地方使用getChildren了,所以我不知道你为什么忘了在这里使用它.

另外,你可以把循环简化成-每种样式.此代码:

列表rssChildren = rss.getChildren();// getElement(rssChildren);for (int i= 0;i< rssChildren.size();i++) {元素rssChild = rssChildren.get(i);System.out.println(rssChild.getName());//打印'title‘和'link’列表rssContents = rssChild.getContent();for (int j= 0;j< rssContents.size();j++) { Content = rssContents.get(j);System.out.println(content.getValue());}

可以是:

代码语言:javascript
复制
for (Element rssChild : rss.getChildren()) {
    System.out.println(rssChild.getName());// prints 'title' and 'link'
    for (Element subRss : rssChild.getChildren()) {
        System.out.println(subRss.getValue());
    }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31365258

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档