Java 将节点转换为字符串

Java 将节点转换为字符串,java,xml,string,parsing,Java,Xml,String,Parsing,我有一个xml解析器,它是几个月前我雇佣的人编写的。xml是从第三方获取的。这一方最近在xml上添加了一个新的重要标记,称为SourceName。我把代码弄乱了一点,我相信我得到了大部分代码,但我得到了一个奇怪的输出 <SourceInfo> <SourceName1>NYT</SourceName1> <SourceName2>BDN</SourceName2> </SourceInfo> NodeList

我有一个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);
    }

纽约时报
BDN
NodeList sourceList=element.getElementsByTagName(“SourceName1”);
if(sourceList.getLength()>0){
元素sourceElem=(元素)sourceList.item(0);
节点sourceName=(节点)sourceElem.getChildNodes().item(0);
System.out.println(sourceName);
}
不需要的返回是[#text:NYT],而不是一个NYT字符串

所以,问题是,如何将节点sourceName转换为值NYT的字符串sourceName


提前谢谢。

我想这就是您想要的:

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

*约亨的评论是正确的。我假设您使用的是java内置的。如果没有,那么这个答案可能是错误的。

节点可能有这样做的方法。如果不知道您正在使用什么解析器,这里没有人能够帮助您。我确信这在解析器的API文档中。您在System.out.println语句中尝试过getNodeValue()吗?是的,AMit Bhargava也是正确的。有没有办法缩短代码?在php中,这可以在live中完成,为什么java需要4行呢?DOM技术从jdk1.4开始就存在了(超过10年)。它不再被认为是最好的,而是为了兼容性而保留的。JAXB或XSLT可能更好地满足您的需求。