【问题标题】:Convert Node to String将节点转换为字符串
【发布时间】:2012-03-15 03:36:00
【问题描述】:

我有一个 xml 解析器,它是几个月前我雇用的人编写的。 xml是从第三方拉进来的。这个聚会,最近在xml上放了一个新的重要标签,叫做SourceName。我把代码弄乱了一点,我相信我得到了大部分,但我得到了一个奇怪的输出。

<SourceInfo>
   <SourceName1>NYT</SourceName1>
   <SourceName2>BDN</SourceName2>
</SourceInfo>

NodeList sourceList = element.getElementsByTagName("SourceName1");
    if(sourceList.getLength()>0){
        Element sourceElem=(Element) sourceList.item(0);
        Node sourceName=(Node) sourceElem.getChildNodes().item(0);
        System.out.println(sourceName);
    }

不想要的返回是 [#text: NYT] 而不是一串 NYT。

所以,问题是,如何将 Node sourceName 转换为值 NYT 的 String sourceName。

提前致谢。

【问题讨论】:

  • 该节点可能有一种方法可以做到这一点。在不知道您使用的是什么解析器的情况下,这里的任何人都无法帮助您。我确定这是在解析器的 API 文档中。
  • 您在 System.out.println 语句中尝试过 getNodeValue() 吗?

标签: java xml string parsing


【解决方案1】:

我想这就是你要找的:

System.out.println(sourceName.getNodeValue()); 

* Jochen 的评论有效。我假设您使用的是 java 内置的DOM parser。如果不是,那么这个答案可能是错误的。

【讨论】:

  • 是的,AMit Bhargava 也是正确的。有没有办法缩短代码?在php中这可以在live中完成,为什么java需要4行?
  • DOM 技术从 jdk1.4 就已经存在(超过 10 年)。它不再被认为是最好的,但为了兼容性而保留。 JAXB 或 XSLT 可能会更好地满足您的需求。
猜你喜欢
  • 2011-08-28
  • 2013-01-14
  • 1970-01-01
  • 1970-01-01
  • 2015-02-06
  • 2019-10-10
  • 1970-01-01
  • 2015-08-10
  • 1970-01-01
相关资源
最近更新 更多