Java 怎么返回XML元素的字符串内容(例如xsl:value-of(),除非字符串中包含子元素的标记)

2019年8月12日21:30:08Java 怎么返回XML元素的字符串内容(例如xsl:value-of(),除非字符串中包含子元素的标记)已关闭评论 446 1148字阅读3分49秒

1.简介

Java 怎么返回XML元素的字符串内容(例如xsl:value-of(),除非字符串中包含子元素的标记)?——请看下文。

2.示例代码

/**
 * 版权所有 编程十万个怎么办(www.tah1986.com)
 */

 


import org.w3c.dom.Attr;
import org.w3c.dom.Element;
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.w3c.dom.Text;

public class Main {
    
    public static String getElementContent(Element elem) {
        String resultStr = "";
        if (elem != null) {
            NodeList childs = elem.getChildNodes();
            for (int i = 0; i < childs.getLength(); i++) {
                Node child = childs.item(i);
                if (child.getNodeType() == Node.ELEMENT_NODE) {
                    resultStr = resultStr + echoStartTag((Element) child);
                    resultStr = resultStr
                            + getElementContent((Element) child);
                    resultStr = resultStr + echoEndTag((Element) child);
                } else if (child.getNodeType() == Node.TEXT_NODE) {
                    resultStr = resultStr + ((Text) child).getData();
                } 
            }
        }
        return resultStr;
    }

    public static String echoStartTag(Element elem) {
        String resultStr = "<" + elem.getTagName();
        String attstr = "";
        NamedNodeMap atts = elem.getAttributes();
        for (int j = 0; j < atts.getLength(); j++) {
            Attr att = (Attr) (atts.item(j));
            
            attstr = attstr + " " + att.getNodeName() + "=\""
                    + att.getNodeValue() + "\"";
        }
        resultStr = resultStr + attstr + ">";
        return resultStr;
    }

    public static String echoEndTag(Element elem) {
        return "</" + elem.getTagName() + ">";
    }
}

 
继续阅读