用dom怎么得到XML文件里的所有的节点和其子节点还有它的值啊?

zhangbo198294 2005-03-03 07:45:13
哪位大哥能告诉我啊!开发急用!
...全文
120 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
boy 2005-03-03
  • 打赏
  • 举报
回复
import java.io.File;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.io.UnsupportedEncodingException;

import org.w3c.dom.Attr;
import org.w3c.dom.Document;
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import javax.xml.parsers.*;
//import com.ibm.xml.parsers.*;

/**
* A sample DOM writer. This sample program illustrates how to
* traverse a DOM tree.
*/

public class domOne
{
public void parseAndPrint(String uri)
{
Document doc = null;

try
{
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
doc = db.parse(new File(uri));
}
catch (Exception e)
{
System.err.println("Sorry, an error occurred: " + e);
}

// We've parsed the document now, so let's print it.

if (doc != null)
printDOMTree(doc);
}

/** Prints the specified node, recursively. */
public void printDOMTree(Node node)
{
int type = node.getNodeType();
switch (type)
{
// print the document element
case Node.DOCUMENT_NODE:
{
System.out.println("<?xml version=\"1.0\" ?>");
printDOMTree(((Document)node).getDocumentElement());
break;
}

// print element with attributes
case Node.ELEMENT_NODE:
{
System.out.print("<");
System.out.print(node.getNodeName());
NamedNodeMap attrs = node.getAttributes();
for (int i = 0; i < attrs.getLength(); i++)
{
Node attr = attrs.item(i);
System.out.print(" " + attr.getNodeName() +
"=\"" + attr.getNodeValue() +
"\"");
}
System.out.print(">");

NodeList children = node.getChildNodes();
if (children != null)
{
int len = children.getLength();
for (int i = 0; i < len; i++)
printDOMTree(children.item(i));
}

break;
}

// handle entity reference nodes
case Node.ENTITY_REFERENCE_NODE:
{
System.out.print("&");
System.out.print(node.getNodeName());
System.out.print(";");
break;
}

// print cdata sections
case Node.CDATA_SECTION_NODE:
{
System.out.print("<![CDATA[");
System.out.print(node.getNodeValue());
System.out.print("]]>");
break;
}

// print text
case Node.TEXT_NODE:
{
System.out.print(node.getNodeValue());
break;
}

// print processing instruction
case Node.PROCESSING_INSTRUCTION_NODE:
{
System.out.print("<?");
System.out.print(node.getNodeName());
String data = node.getNodeValue();
{
System.out.print(" ");
System.out.print(data);
}
System.out.print("?>");
break;
}
}

if (type == Node.ELEMENT_NODE)
{
System.out.print("</");
System.out.print(node.getNodeName());
System.out.print('>');
}
} // printDOMTree(Node)

/** Main program entry point. */
public static void main(String argv[])
{
if (argv.length == 0)
{
System.out.println("Usage: java domOne uri");
System.out.println(" where uri is the URI of the XML document you want to print.");
System.out.println(" Sample: java domOne sonnet.xml");
System.exit(1);
}

domOne d1 = new domOne();
d1.parseAndPrint(argv[0]);
}
}
julian_zzx 2005-03-03
  • 打赏
  • 举报
回复
用什么啊,记得应该是getChild()之类的吧,这些问题看看doc就都有了
package com.hexiang.utils; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.NodeList; /** * 本类是专门解析XML文件的,主要用于为系统读取自己的配置文件时提供最方便的解析操作 * @author HX * */ public class XmlManager { /** * 得到节点下某个属性的 * @param element 要获取属性的节点 * @param attributeName 要取的属性名称 * @return 要获取的属性的 * @author HX_2010-01-12 */ public static String getAttribute( Element element, String attributeName ) { return element.getAttribute( attributeName ); } /** * 获取指定节点下的文本 * @param element 要获取文本的节点 * @return 指定节点下的文本 * @author HX_2010-01-12 */ public static String getText( Element element ) { return element.getFirstChild().getNodeValue(); } /** * 解析某个xml文件,并在内存中创建DOM树 * @param xmlFile 要解析的XML文件 * @return 解析某个配置文件后的Document * @throws Exception xml文件不存在 */ public static Document parse( String xmlFile ) throws Exception { // 绑定XML文件,建造DOM树 DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); DocumentBuilder db = dbf.newDocumentBuilder(); Document domTree = db.parse( xmlFile ); return domTree; } /** * 获得某节点下的某个节点(指定节点名称,和某个属性的) * 即获取parentElement下名字叫childName,并且属性attributeName的为attributeValue的子结点 * @param parentElement 要获取节点的那个父节点 * @param childName 要获取的节点名称 * @param attributeName 要指定的属性名称 * @param attributeValue 要指定的属性的 * @return 符合条件的节点 * @throws Exception 子结点不存在或有多个符合条件的节点 * @author HX_2008-12-01 */ public static Element getChildElement( Element parentElement, String childName, String attributeName, String attributeValue ) throws Exception { NodeList list = parentElement.getElementsByTagName( childName ); int count = 0; Element curElement = null; for ( int i = 0 ; i < list.getLength() ; i ++ ) { Element child = ( Element )list.item( i ); String value = child.getAttribute( attributeName ); if ( true == value.equals( attributeValue ) ) { curElement =
getElementsByTagName() 方法返回包含拥有指定标签名的所有元素的节点列表,其中的元素的顺序是它们在源文档中出现的顺序。本例使用 getAttribute() 方法获取 "books.xml" 中第一个 元素的 "lang" 属性的<em>值</em>。<title> 元素只有一个<em>子<em>节点</em></em>,即一个文本<em>节点</em>。与元素<em>节点</em>不同,属性<em>节点</em>拥有文本<em>值</em>。获取元素文本的方法,就是获取这个<em>子<em>节点</em></em>(文本<em>节点</em>)的<em>值</em>。元素<em>节点</em>没有文本<em>值</em>。元素<em>节点</em>的文本存储在<em>子<em>节点</em></em>中。获取属性的<em>值</em>的方法,就是获取它的文本<em>值</em>。</a></div></div></div></div> <div class="public_pc_right_footer2020" style="display:none;" data-v-4a5a7f56></div></div> <div id="right-floor-user-content_562" data-editor="{"type":"floor","pageId":143,"floorId":562}" class="user-right-floor right-box main-box detail-user-right" data-v-229a00b0><div class="__vuescroll" style="height:100%;width:100%;padding:0;position:relative;overflow:hidden;"><div class="__panel __hidebar" style="position:relative;box-sizing:border-box;height:100%;overflow-y:hidden;overflow-x:hidden;transform-origin:;transform:;"><div class="__view" style="position:relative;box-sizing:border-box;min-width:100%;min-height:100%;"><!----><div comp-data="[object Object]" baseInfo="[object Object]" community="[object Object]" class="introduce" data-v-4722a3ae><div class="introduce-title" data-v-4722a3ae><div class="img-info" data-v-4722a3ae><a href="https://bbs.csdn.net/forums/J2EE" class="community-img" data-v-4722a3ae><img src="https://img-community.csdnimg.cn/avatar/2e155f43a6714e1bbf3c36314b149397.png?x-oss-process=image/resize,m_fixed,h_88,w_88" alt data-v-4722a3ae> <div title="Java EE" class="community-name" data-v-4722a3ae> Java EE </div></a></div></div> <div class="content" data-v-4722a3ae><div class="detail" data-v-4722a3ae><div title="67550" class="item" data-v-4722a3ae><p class="num" data-v-4722a3ae> 67,550 </p> <p class="desc" data-v-4722a3ae> 社区成员 </p></div> <div title="225863" class="item" data-v-4722a3ae><a href="https://bbs.csdn.net/forums/J2EE" target="_blank" data-v-4722a3ae><p class="num" data-v-4722a3ae> 225,863 </p> <p class="desc" data-v-4722a3ae> 社区内容 </p></a></div></div> <div class="detail-btns" data-v-4722a3ae><div class="community-ctrl-btns_wrapper" data-v-0ebf603c data-v-4722a3ae><div class="community-ctrl-btns" data-v-0ebf603c><div class="community-ctrl-btns_item" data-v-0ebf603c><div data-v-160be461 data-v-0ebf603c><div data-report-click="{"spm":"3001.5975"}" data-v-160be461><img src="https://csdnimg.cn/release/cmsfe/public/img/topic.427195d5.png" alt="" class="img sendTopic" data-v-160be461 data-v-0ebf603c> <span data-v-160be461 data-v-0ebf603c>发帖</span></div> <!----> <!----></div></div><div class="community-ctrl-btns_item" data-v-0ebf603c><div data-v-0ebf603c><img src="https://csdnimg.cn/release/cmsfe/public/img/me.40a70ab0.png" alt="" class="img me" data-v-0ebf603c> <span data-v-0ebf603c>与我相关</span></div></div><div class="community-ctrl-btns_item" data-v-0ebf603c><div data-v-0ebf603c><img src="https://csdnimg.cn/release/cmsfe/public/img/task.87b52881.png" alt="" class="img task" data-v-0ebf603c> <span data-v-0ebf603c>我的任务</span></div></div><div class="community-ctrl-btns_item" data-v-0ebf603c><div class="community-share" data-v-4ca34db9 data-v-0ebf603c><div class="handle-item share" data-v-ca030a68 data-v-4ca34db9><span height="384" data-v-ca030a68><div role="tooltip" id="el-popover-962" aria-hidden="true" class="el-popover el-popper popo share-popover" style="width:265px;display:none;"><!----><div id="tool-QRcode" class="QRcode" data-v-ca030a68><img src="https://csdnimg.cn/release/cmsfe/public/img/shareBg3.9519d347.png" alt="" class="share-bg" data-v-ca030a68> <div class="share-bg-box" data-v-ca030a68><div class="share-content" data-v-ca030a68><img src="https://img-community.csdnimg.cn/avatar/2e155f43a6714e1bbf3c36314b149397.png?x-oss-process=image/resize,m_fixed,h_88,w_88" alt="" class="share-avatar" data-v-ca030a68> <div class="share-tit" data-v-ca030a68>Java EE</div> <div class="share-dec" data-v-ca030a68>J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。</div> <span class="copy-share-url" data-v-ca030a68>复制链接</span> <div class="shareText" data-v-ca030a68> </div></div> <div class="share-code" data-v-ca030a68><div class="qrcode" data-v-ca030a68></div> <div class="share-code-text" data-v-ca030a68>扫一扫</div></div></div></div> </div><span class="el-popover__reference-wrapper"><div data-v-0ebf603c><img src="https://csdnimg.cn/release/cmsfe/public/img/share-circle.3e0b7822.png" alt="" class="img share" data-v-0ebf603c> <span data-v-0ebf603c>分享</span></div></span></span></div> <!----></div></div></div> <!----> <div data-v-4fb59baf data-v-0ebf603c><div class="el-dialog__wrapper ccloud-pop-outer2" style="display:none;" data-v-4fb59baf><div role="dialog" aria-modal="true" aria-label="dialog" class="el-dialog el-dialog--center" style="margin-top:15vh;width:70%;"><div class="el-dialog__header"><span class="el-dialog__title"></span><!----></div><!----><div class="el-dialog__footer"><span class="dialog-footer clearfix" data-v-4fb59baf><div class="confirm-btm fr" data-v-4fb59baf>确定</div></span></div></div></div></div></div></div></div> <div style="display:none;" data-v-4722a3ae data-v-4722a3ae><!----> <div class="introduce-desc" data-v-4722a3ae><div class="introduce-desc-title" data-v-4722a3ae>社区描述</div> <span data-v-4722a3ae> J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。 </span></div></div> <div class="introduce-text" data-v-4722a3ae><div class="label-box" data-v-4722a3ae><!----> <!----> <!----></div></div> <!----> <div class="manage" data-v-4722a3ae><div class="manage-inner" data-v-4722a3ae><span data-v-4722a3ae>社区管理员</span> <ul data-v-4722a3ae><li data-v-4722a3ae><a href="https://blog.csdn.net/community_2" target="_blank" class="start-img" data-v-4722a3ae><img src="https://profile-avatar.csdnimg.cn/default.jpg!1" alt="Java EE" class="el-tooltip item" data-v-4722a3ae data-v-4722a3ae></a></li></ul></div></div> <div class="actions" data-v-4722a3ae><!----> <div style="flex:1;" data-v-4722a3ae><div class="join-btn" data-v-4722a3ae> 加入社区 </div></div> <!----> <!----></div> <div class="el-dialog__wrapper" style="display:none;" data-v-38c57799 data-v-4722a3ae><div role="dialog" aria-modal="true" aria-label="获取链接或二维码" class="el-dialog join-qrcode-dialog" style="margin-top:15vh;width:600px;"><div class="el-dialog__header"><span class="el-dialog__title">获取链接或二维码</span><button type="button" aria-label="Close" class="el-dialog__headerbtn"><i class="el-dialog__close el-icon el-icon-close"></i></button></div><!----><div class="el-dialog__footer"><span class="dialog-footer" data-v-38c57799></span></div></div></div> <div class="collapse-btn" data-v-4722a3ae><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFAAAAAgCAYAAACFM/9sAAAAAXNSR0IArs4c6QAAAi1JREFUaEPtl01u01AUhc+N8wMSO4AxzJAqwQpKQsdtbMOICmKnwCKQ2ACDIgotrYKiduIiVZ10B0CBAjtAbICfooomJr3IcUoTiVLb15GNuG/67nm65/M5AxP0iAiQSK1iKEBhCBSgAhQSEMo1gQpQSEAo1wQqQCEBoVwT+K8CnLnWvER8cOHMaf95q9Xaj+vDtp3LPeD83u6p9a2t+U5cfVrzmSTQNOfOgg4+ATDAeNHp/Jza3Fz5HtWUZbl3GXjYn2e+53lL96Nq057LBOD0dOOcUSx8BFAcGHpZLlWmVlfnd08yaJrubRAe/Z77HwEG5kdS1E8StgFc9bzFb8dBrNtukxgLwOAXNEF6T/pAce8zSeDhknXbuUNMQRUHe/BrMNX+BNGyHIdBT45m6VVn36/FqX5cOFHmMwUYJrE5x+CgkuEujLe+361ubLS+HhowzeYtEC8NzWyXy5ValMpHgSCZyRxgsLxpui4Ij4/ShZ1S0aiurS18sSznJoOeDt29AaP6t6pLgMTV5gJgsHTddhvEWBwC9Y6AZww8AFA4Lp1xDac9nxuAYZ37aQuqGgIbPTt+t3tluNppw0jyXq4AhnV2ZkG0PAKR8b5UMiaDSicxOU5N7gCGSXRvMLAygPgB3Jv0vOXP4wSR9O1cAgzMzFxvXDR6hYlK5cd6u93eS2pw3LrcAhy38bTeV4BCkgpQAQoJCOWaQAUoJCCUawIVoJCAUK4JVIBCAkL5L1yapyGdIBwvAAAAAElFTkSuQmCC" alt data-v-4722a3ae></div></div><!----><!----><div comp-data="[object Object]" baseInfo="[object Object]" typePage="detail" community="[object Object]" class="floor-user-right-rank" data-v-3d3affee><div class="el-tabs el-tabs--top" data-v-3d3affee><div class="el-tabs__header is-top"><div class="el-tabs__nav-wrap is-top"><div class="el-tabs__nav-scroll"><div role="tablist" class="el-tabs__nav is-top" style="transform:translateX(-0px);"><div class="el-tabs__active-bar is-top" style="width:0px;transform:translateX(0px);ms-transform:translateX(0px);webkit-transform:translateX(0px);"></div></div></div></div></div><div class="el-tabs__content"><div role="tabpanel" id="pane-integral" aria-labelledby="tab-integral" class="el-tab-pane" data-v-3d3affee></div><div role="tabpanel" aria-hidden="true" id="pane-3" aria-labelledby="tab-3" class="el-tab-pane" style="display:none;" data-v-3d3affee></div><div role="tabpanel" aria-hidden="true" id="pane-5" aria-labelledby="tab-5" class="el-tab-pane" style="display:none;" data-v-3d3affee></div><div role="tabpanel" aria-hidden="true" id="pane-6" aria-labelledby="tab-6" class="el-tab-pane" style="display:none;" data-v-3d3affee></div></div></div> <div class="floor-user-right-rank-score" data-v-608528ce data-v-3d3affee><div class="floor-user-right-rank-score-tabs" data-v-608528ce><ul data-v-608528ce><li data-v-608528ce> 近7日 </li><li data-v-608528ce> 近30日 </li><li class="active" data-v-608528ce> 至今 </li></ul></div> <div class="floor-user-right-rank-common" data-v-46cf600d data-v-608528ce><div class="rank-list" data-v-46cf600d><!----> <div class="no-data loading" data-v-46cf600d><i class="el-icon-loading" data-v-46cf600d></i> <p data-v-46cf600d>加载中</p></div> <!----> <a href="https:///J2EE/rank/list/total" target="_blank" class="show-more" data-v-46cf600d> 查看更多榜单 </a></div></div></div></div><div comp-data="[object Object]" baseInfo="[object Object]" typePage="detail" community="[object Object]" class="floor comunity-rule" data-v-3cfa4dbd><div class="title" data-v-3cfa4dbd> 社区公告 </div> <div class="contain" data-v-3cfa4dbd><div class="inner-content" data-v-3cfa4dbd>暂无公告</div></div></div><div comp-data="[object Object]" baseInfo="[object Object]" typePage="detail" community="[object Object]" class="user-right-adimg empty-arr" data-v-15c6aa4f><div class="adImgs" data-v-2a6389b9 data-v-15c6aa4f><!----> <div data-v-2a6389b9><div data-v-2a6389b9></div></div></div></div><div comp-data="[object Object]" baseInfo="[object Object]" typePage="detail" community="[object Object]" class="ai-entrance" data-v-eb1c454c><p data-v-eb1c454c>试试用AI创作助手写篇文章吧</p> <div class="entrance-btn-line" data-v-eb1c454c><a href="https://mp.csdn.net/edit?guide=1" target="_blank" data-report-click="{"spm":"3001.9712"}" data-report-query="spm=3001.9712" class="entrance-btn" data-v-eb1c454c>+ 用AI写文章</a></div></div></div></div></div></div></div></div></div></div> <!----></div></div></div> <div> <script type="text/javascript" src="https://g.csdnimg.cn/common/csdn-footer/csdn-footer.js" data-isfootertrack="false" defer></script> </div></div></div><script> window.__INITIAL_STATE__= {"csrf":"LNa9UauG-Ci1CODOQh_ZJeaZ8RSBSh2-7NHo","origin":"http:\u002F\u002Fbbs.csdn.net","isMobile":false,"cookie":"uuid_tt_dd=10_36287182270-1751739280139-681529; uuid_tt_dd=10_36287182270-1751739280139-681529; dc_sid=cda1b009fe2bccd31baa9f49b6bcbdaa; dc_session_id=10_1751739280139.650359; csrfToken=K2yZKzBPJ8ZHe1FaEo191naM","ip":"216.73.216.147","pageData":{"page":{"pageId":143,"title":"社区详情","keywords":"社区详情","description":"社区详情","ext":{"isMd":"true","armsfe1":"{pid:\"dyiaei5ihw@1a348e4d05c2c78\",appType:\"web\",imgUrl:\"https:\u002F\u002Farms-retcode.aliyuncs.com\u002Fr.png?\",sendResource:true,enableLinkTrace:true,behavior:true}","redPacketCfg":"{\"presetTitle\":[\"成就一亿技术人!\",\"大吉大利\",\"节日快乐\",\"Bug Free\",\"Hello World\",\"Be Greater Than Average!!\"],\"defaultTitle\":\"成就一亿技术人!\",\"preOpenSty\":{},\"redCardSty\":{}}","blogStar":"[{\"year\":\"2021\",\"enable\":true,\"communityIds\":[3859],\"url\":\"https:\u002F\u002Fbbs.csdn.net\u002Fsummary2021\"},{\"year\":\"2022\",\"enable\":true,\"communityIds\":[3860],\"url\":\"https:\u002F\u002Fbbs.csdn.net\u002Fsummary2022\"}]","mdVersion":"https:\u002F\u002Fcsdnimg.cn\u002Frelease\u002Fmarkdown-editor\u002F1.1.0\u002Fmarkdown-editor.js","componentSortCfg":"{ \"right\":[\"ratesInfo\",\"cty-profile\",\"pub-comp\",\"user-right-introduce\",\"post-event\",\"my-mission\", \"user-right-rank\",\"user-right-rule\",\"user-right-adimg\"] }","showCknowDetail":"{\"show\":true,\"reportView\":true,\"url\":\"https:\u002F\u002Fai.csdn.net\u002Fhomework?utm_source=cknow_bbs_detail\",\"spm\":\"1035.2022.3001.10801\"}","show_1024":"{\"enable\":false,\"useWhitelist\":false,\"whitelist\":[76215],\"home\":\"https:\u002F\u002F1111.csdn.net\u002F\",\"logo\":\"https:\u002F\u002Fimg-home.csdnimg.cn\u002Fimages\u002F20221104102741.png\",\"hideLive\":true}","iframes":"[\"3859\"]","pageCfg":"{\"disableDownloadPDF\": false,\"hideSponsor\":false}"}},"template":{"templateId":71,"templateComponentName":"ccloud-detail","title":"ccloud-detail","floorList":[{"floorId":562,"floorComponentName":"floor-user-content","title":"社区详情页","description":"社区详情页","indexOrder":3,"componentList":[{"componentName":"baseInfo","componentDataId":"cloud-detail1","componentConfigData":{},"relationType":3},{"componentName":"user-right-introduce","componentDataId":"","componentConfigData":{},"relationType":2},{"componentName":"user-recommend","componentDataId":"","componentConfigData":{},"relationType":2},{"componentName":"user-right-rank","componentDataId":"","componentConfigData":{},"relationType":2},{"componentName":"user-right-rule","componentDataId":"","componentConfigData":{},"relationType":2},{"componentName":"user-right-adimg","componentDataId":"","componentConfigData":{},"relationType":2},{"componentName":"default2014LiveRoom","componentDataId":"20221024DefaultLiveRoom","componentConfigData":{},"relationType":3}]}]},"data":{"baseInfo":{"customDomain":"","uriName":"J2EE","communityHomePage":"https:\u002F\u002Fbbs.csdn.net\u002Fforums\u002FJ2EE","owner":{"userName":"community_2","nickName":"Java EE","avatarUrl":"https:\u002F\u002Fprofile-avatar.csdnimg.cn\u002Fdefault.jpg!1","position":"","companyName":""},"user":{"userRole":3,"userName":null,"nickName":null,"avatarUrl":null,"rank":null,"follow":2,"communityBase":null,"joinCollege":null,"isVIP":null},"community":{"name":"Java EE","description":"J2EE只是Java企业应用。我们需要一个跨J2SE\u002FWEB\u002FEJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE\u002FJ2EE版本。","avatarUrl":"https:\u002F\u002Fimg-community.csdnimg.cn\u002Favatar\u002F2e155f43a6714e1bbf3c36314b149397.png?x-oss-process=image\u002Fresize,m_fixed,h_88,w_88","qrCode":"","createTime":"2007-09-28","communityAvatarUrl":"https:\u002F\u002Fprofile-avatar.csdnimg.cn\u002Fdefault.jpg!1","communityNotice":null,"userCount":67550,"contentCount":225863,"followersCount":37332,"communityRule":"","communityId":121,"bgImage":"","hashId":"pjnd7on8","domain":"","uriName":"J2EE","externalDisplay":1,"adBanner":{"img":"","url":"","adType":0,"adCon":null},"rightBanner":{"img":"","url":"","adType":0,"adCon":null},"tagId":null,"tagName":null,"communityType":1,"communityApplyUrl":"https:\u002F\u002Fmarketing.csdn.net\u002Fquestions\u002FQ2106040308026533763","joinType":0,"visibleType":0,"collapse":0,"topicMoveAble":0,"allowActions":{},"communityOwner":"community_2","tagNameInfo":{"provinceTag":null,"areaTag":null,"technologyTags":null,"customTags":null}},"tabList":[{"tabId":1280,"tabName":"全部","tabUrl":"","tabSwitch":1,"tabType":4,"tabContribute":0,"cardType":0,"indexOrder":-1,"url":"https:\u002F\u002Fbbs.csdn.net\u002Fforums\u002FJ2EE?typeId=1280","iframe":false,"sortType":1},{"tabId":1632206,"tabName":"Ada助手","tabUrl":"","tabSwitch":1,"tabType":2,"tabContribute":0,"cardType":0,"indexOrder":20,"url":"https:\u002F\u002Fbbs.csdn.net\u002Fforums\u002FJ2EE?typeId=1632206","iframe":false,"sortType":1}],"dataResource":{"mediaType":"c_cloud","subResourceType":"8_c_cloud_long_text","showType":"long_text","tabId":0,"communityName":"Java EE","communityHomePageUrl":"https:\u002F\u002Fbbs.csdn.net\u002Fforums\u002FJ2EE","communityType":1,"content":{"id":"70133880","contentId":70133880,"cateId":0,"cateName":null,"url":"https:\u002F\u002Fbbs.csdn.net\u002Ftopics\u002F70133880","shareUrl":"https:\u002F\u002Fbbs.csdn.net\u002Ftopics\u002F70133880","createTime":"2005-03-03 07:45:13","updateTime":"2021-05-28 12:57:15","resourceUsername":"zhangbo198294","best":0,"top":0,"text":null,"publishDate":"2005-03-03","lastReplyDate":"2005-03-03","type":"13","nickname":"zhangbo198294","avatar":"https:\u002F\u002Fprofile-avatar.csdnimg.cn\u002Fe6512bb1f1694204bd2a7f712906a2d2_zhangbo198294.jpg!1","username":"zhangbo198294","commentCount":2,"diggNum":0,"digg":false,"viewCount":120,"hit":false,"resourceSource":6,"status":10,"taskStatus":null,"expired":false,"taskCate":0,"taskAward":0,"taskExpired":null,"checkRedPacket":null,"avgScore":0,"totalScore":0,"topicTitle":"用dom怎么得到XML文件里的所有的节点和其子节点还有它的值啊?","insertFirst":false,"likeInfo":null,"description":"哪位大哥能告诉我啊!开发急用!","coverImg":"https:\u002F\u002Fimg-home.csdnimg.cn\u002Fimages\u002F20221026062122.png","content":"哪位大哥能告诉我啊!开发急用!","mdContent":null,"pictures":null,"videoInfo":null,"linkInfo":null,"student":{"isCertification":false,"org":"","bala":""},"employee":{"isCertification":false,"org":"","bala":""},"userCertification":[],"dependId":"0","dependSubType":null,"videoUrl":null,"favoriteCount":0,"favoriteStatus":false,"taskType":null,"defaultScore":null,"syncAsk":false,"videoPlayLength":null},"communityUser":null,"allowPost":false,"submitHistory":[{"user":{"registerurl":"https:\u002F\u002Fg.csdnimg.cn\u002Fstatic\u002Fuser-reg-year\u002F1x\u002F21.png","avatarurl":"https:\u002F\u002Fprofile-avatar.csdnimg.cn\u002Fe6512bb1f1694204bd2a7f712906a2d2_zhangbo198294.jpg!1","nickname":"zhangbo198294","selfdesc":"","createdate":"2004-12-05 14:32:00","days":"7518","years":"21","username":"zhangbo198294","school":null,"company":null,"job":null},"userName":"zhangbo198294","event":"创建了帖子","body":"2005-03-03 07:45","editId":null}],"resourceExt":{}},"contentReply":{"pageNo":1,"pageSize":20,"totalPages":1,"totalCount":2,"total":0,"list":[{"hit":null,"hitMsg":null,"content":"import java.io.File;\u003Cbr \u002F\u003E\nimport java.io.OutputStreamWriter;\u003Cbr \u002F\u003E\nimport java.io.PrintWriter;\u003Cbr \u002F\u003E\nimport java.io.UnsupportedEncodingException;\u003Cbr \u002F\u003E\n\u003Cbr \u002F\u003E\nimport org.w3c.dom.Attr;\u003Cbr \u002F\u003E\nimport org.w3c.dom.Document;\u003Cbr \u002F\u003E\nimport org.w3c.dom.NamedNodeMap;\u003Cbr \u002F\u003E\nimport org.w3c.dom.Node;\u003Cbr \u002F\u003E\nimport org.w3c.dom.NodeList;\u003Cbr \u002F\u003E\nimport javax.xml.parsers.*;\u003Cbr \u002F\u003E\n\u002F\u002Fimport com.ibm.xml.parsers.*;\u003Cbr \u002F\u003E\n\u003Cbr \u002F\u003E\n\u002F**\u003Cbr \u002F\u003E\n * A sample DOM writer. This sample program illustrates how to\u003Cbr \u002F\u003E\n * traverse a DOM tree.\u003Cbr \u002F\u003E\n *\u002F\u003Cbr \u002F\u003E\n\u003Cbr \u002F\u003E\npublic class domOne\u003Cbr \u002F\u003E\n{\u003C!-- --\u003E\u003Cbr \u002F\u003E\n public void parseAndPrint(String uri)\u003Cbr \u002F\u003E\n {\u003C!-- --\u003E\u003Cbr \u002F\u003E\n Document doc = null;\u003Cbr \u002F\u003E\n\u003Cbr \u002F\u003E\n try\u003Cbr \u002F\u003E\n {\u003C!-- --\u003E\u003Cbr \u002F\u003E\n\t DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();\u003Cbr \u002F\u003E\n\t DocumentBuilder db = dbf.newDocumentBuilder();\u003Cbr \u002F\u003E\n\t doc = db.parse(new File(uri));\u003Cbr \u002F\u003E\n }\u003Cbr \u002F\u003E\n catch (Exception e)\u003Cbr \u002F\u003E\n {\u003C!-- --\u003E\u003Cbr \u002F\u003E\n System.err.println("Sorry, an error occurred: " + e);\u003Cbr \u002F\u003E\n }\u003Cbr \u002F\u003E\n\u003Cbr \u002F\u003E\n \u002F\u002F We've parsed the document now, so let's print it. \u003Cbr \u002F\u003E\n\u003Cbr \u002F\u003E\n if (doc != null)\u003Cbr \u002F\u003E\n printDOMTree(doc);\u003Cbr \u002F\u003E\n }\u003Cbr \u002F\u003E\n\u003Cbr \u002F\u003E\n \u002F** Prints the specified node, recursively. *\u002F\u003Cbr \u002F\u003E\n public void printDOMTree(Node node) \u003Cbr \u002F\u003E\n {\u003C!-- --\u003E\u003Cbr \u002F\u003E\n int type = node.getNodeType();\u003Cbr \u002F\u003E\n switch (type)\u003Cbr \u002F\u003E\n {\u003C!-- --\u003E\u003Cbr \u002F\u003E\n \u002F\u002F print the document element\u003Cbr \u002F\u003E\n case Node.DOCUMENT_NODE: \u003Cbr \u002F\u003E\n {\u003C!-- --\u003E\u003Cbr \u002F\u003E\n System.out.println("<?xml version=\\"1.0\\" ?>");\u003Cbr \u002F\u003E\n printDOMTree(((Document)node).getDocumentElement());\u003Cbr \u002F\u003E\n break;\u003Cbr \u002F\u003E\n }\u003Cbr \u002F\u003E\n\u003Cbr \u002F\u003E\n \u002F\u002F print element with attributes\u003Cbr \u002F\u003E\n case Node.ELEMENT_NODE: \u003Cbr \u002F\u003E\n {\u003C!-- --\u003E\u003Cbr \u002F\u003E\n System.out.print("<");\u003Cbr \u002F\u003E\n System.out.print(node.getNodeName());\u003Cbr \u002F\u003E\n NamedNodeMap attrs = node.getAttributes();\u003Cbr \u002F\u003E\n for (int i = 0; i < attrs.getLength(); i++)\u003Cbr \u002F\u003E\n {\u003C!-- --\u003E\u003Cbr \u002F\u003E\n Node attr = attrs.item(i);\u003Cbr \u002F\u003E\n System.out.print(" " + attr.getNodeName() + \u003Cbr \u002F\u003E\n "=\\"" + attr.getNodeValue() + \u003Cbr \u002F\u003E\n "\\"");\u003Cbr \u002F\u003E\n }\u003Cbr \u002F\u003E\n System.out.print(">");\u003Cbr \u002F\u003E\n\u003Cbr \u002F\u003E\n NodeList children = node.getChildNodes();\u003Cbr \u002F\u003E\n if (children != null)\u003Cbr \u002F\u003E\n {\u003C!-- --\u003E\u003Cbr \u002F\u003E\n int len = children.getLength();\u003Cbr \u002F\u003E\n for (int i = 0; i < len; i++)\u003Cbr \u002F\u003E\n printDOMTree(children.item(i));\u003Cbr \u002F\u003E\n }\u003Cbr \u002F\u003E\n\u003Cbr \u002F\u003E\n break;\u003Cbr \u002F\u003E\n }\u003Cbr \u002F\u003E\n\u003Cbr \u002F\u003E\n \u002F\u002F handle entity reference nodes\u003Cbr \u002F\u003E\n case Node.ENTITY_REFERENCE_NODE: \u003Cbr \u002F\u003E\n {\u003C!-- --\u003E\u003Cbr \u002F\u003E\n System.out.print("&");\u003Cbr \u002F\u003E\n System.out.print(node.getNodeName());\u003Cbr \u002F\u003E\n System.out.print(";");\u003Cbr \u002F\u003E\n break;\u003Cbr \u002F\u003E\n }\u003Cbr \u002F\u003E\n\u003Cbr \u002F\u003E\n \u002F\u002F print cdata sections\u003Cbr \u002F\u003E\n case Node.CDATA_SECTION_NODE: \u003Cbr \u002F\u003E\n {\u003C!-- --\u003E\u003Cbr \u002F\u003E\n System.out.print("<![CDATA[");\u003Cbr \u002F\u003E\n System.out.print(node.getNodeValue());\u003Cbr \u002F\u003E\n System.out.print("]]>");\u003Cbr \u002F\u003E\n break;\u003Cbr \u002F\u003E\n }\u003Cbr \u002F\u003E\n\u003Cbr \u002F\u003E\n \u002F\u002F print text\u003Cbr \u002F\u003E\n case Node.TEXT_NODE: \u003Cbr \u002F\u003E\n {\u003C!-- --\u003E\u003Cbr \u002F\u003E\n System.out.print(node.getNodeValue());\u003Cbr \u002F\u003E\n break;\u003Cbr \u002F\u003E\n }\u003Cbr \u002F\u003E\n\u003Cbr \u002F\u003E\n \u002F\u002F print processing instruction\u003Cbr \u002F\u003E\n case Node.PROCESSING_INSTRUCTION_NODE: \u003Cbr \u002F\u003E\n {\u003C!-- --\u003E\u003Cbr \u002F\u003E\n System.out.print("<?");\u003Cbr \u002F\u003E\n System.out.print(node.getNodeName());\u003Cbr \u002F\u003E\n String data = node.getNodeValue();\u003Cbr \u002F\u003E\n {\u003C!-- --\u003E\u003Cbr \u002F\u003E\n System.out.print(" ");\u003Cbr \u002F\u003E\n System.out.print(data);\u003Cbr \u002F\u003E\n }\u003Cbr \u002F\u003E\n System.out.print("?>");\u003Cbr \u002F\u003E\n break;\u003Cbr \u002F\u003E\n }\u003Cbr \u002F\u003E\n }\u003Cbr \u002F\u003E\n\u003Cbr \u002F\u003E\n if (type == Node.ELEMENT_NODE)\u003Cbr \u002F\u003E\n {\u003C!-- --\u003E\u003Cbr \u002F\u003E\n System.out.print("<\u002F");\u003Cbr \u002F\u003E\n System.out.print(node.getNodeName());\u003Cbr \u002F\u003E\n System.out.print('>');\u003Cbr \u002F\u003E\n }\u003Cbr \u002F\u003E\n } \u002F\u002F printDOMTree(Node)\u003Cbr \u002F\u003E\n\u003Cbr \u002F\u003E\n \u002F** Main program entry point. *\u002F\u003Cbr \u002F\u003E\n public static void main(String argv[]) \u003Cbr \u002F\u003E\n {\u003C!-- --\u003E\u003Cbr \u002F\u003E\n if (argv.length == 0)\u003Cbr \u002F\u003E\n {\u003C!-- --\u003E\u003Cbr \u002F\u003E\n System.out.println("Usage: java domOne uri");\u003Cbr \u002F\u003E\n System.out.println(" where uri is the URI of the XML document you want to print.");\u003Cbr \u002F\u003E\n System.out.println(" Sample: java domOne sonnet.xml");\u003Cbr \u002F\u003E\n System.exit(1);\u003Cbr \u002F\u003E\n }\u003Cbr \u002F\u003E\n\u003Cbr \u002F\u003E\n domOne d1 = new domOne();\u003Cbr \u002F\u003E\n d1.parseAndPrint(argv[0]);\u003Cbr \u002F\u003E\n }\u003Cbr \u002F\u003E\n}","topicTitle":null,"description":"import java.io.File; import java.io.OutputStreamWriter; import java.io.PrintWriter; import java.io.UnsupportedEncodingException; import org.w3c.dom.Attr; import org.w3c.dom.Document; import org.w3c.dom.NamedNodeMap; import org.w3c.dom.Node; import or","id":50774401,"contentResourceId":70133880,"bindContentResourceId":0,"communityId":121,"username":"tx18","userNickName":"boy","userAvatar":"https:\u002F\u002Fprofile-avatar.csdnimg.cn\u002F3a1a4a3c6b91459790225b626c2a86a8_tx18.jpg!1","mdContent":null,"parentId":0,"replyName":"","replyNickName":"","bizNo":"bbs","ip":3662786167,"status":10,"childCount":0,"topStatus":0,"recommendStatus":0,"userLike":false,"diggCount":0,"childIds":"","createTime":"2005-03-03 11:31:27","updateTime":"2005-03-03 11:31:27","formatTime":"2005-03-03","userRoleHonorary":{"userName":null,"roleId":null,"roleType":null,"roleStatus":null,"honoraryId":null,"roleName":null,"honoraryName":null,"communityNickname":null,"communitySignature":null},"child":null,"communityNickname":null,"communityReplyNickname":null,"rewardInfo":null,"checkRedPacketVO":null,"noDiggCount":null},{"hit":null,"hitMsg":null,"content":"用什么啊,记得应该是getChild()之类的吧,这些问题看看doc就都有了","topicTitle":null,"description":"用什么啊,记得应该是getChild()之类的吧,这些问题看看doc就都有了","id":50774036,"contentResourceId":70133880,"bindContentResourceId":0,"communityId":121,"username":"julian_zzx","userNickName":"julian_zzx","userAvatar":"https:\u002F\u002Fprofile-avatar.csdnimg.cn\u002Fdefault.jpg!1","mdContent":null,"parentId":0,"replyName":"","replyNickName":"","bizNo":"bbs","ip":1026588393,"status":10,"childCount":0,"topStatus":0,"recommendStatus":0,"userLike":false,"diggCount":0,"childIds":"","createTime":"2005-03-03 11:00:47","updateTime":"2005-03-03 11:00:47","formatTime":"2005-03-03","userRoleHonorary":{"userName":null,"roleId":null,"roleType":null,"roleStatus":null,"honoraryId":null,"roleName":null,"honoraryName":null,"communityNickname":null,"communitySignature":null},"child":null,"communityNickname":null,"communityReplyNickname":null,"rewardInfo":null,"checkRedPacketVO":null,"noDiggCount":null}],"maxPageSize":3000},"defaultActiveTab":1280,"recommends":[{"url":"https:\u002F\u002Fdownload.csdn.net\u002Fdownload\u002Fhexiang221\u002F1994715","title":"Java解析XML工具类--(java源码)","desc":"package com.hexiang.utils;\n\nimport javax.xml.parsers.DocumentBuilder;\nimport javax.xml.parsers.DocumentBuilderFactory;\nimport org.w3c.\u003Cem\u003Edom\u003C\u002Fem\u003E.Document;\nimport org.w3c.\u003Cem\u003Edom\u003C\u002Fem\u003E.Element;\nimport org.w3c.\u003Cem\u003Edom\u003C\u002Fem\u003E.NodeList;\n\n\u002F**\n * 本类是专门解析\u003Cem\u003EXML文件\u003C\u002Fem\u003E的,主要用于为系统读取自己的配置文件时提供最方便的解析操作\n * @author HX\n *\n *\u002F\npublic class XmlManager {\n\t\n\t\u002F**\n\t * \u003Cem\u003E得到\u003C\u002Fem\u003E某\u003Cem\u003E节点\u003C\u002Fem\u003E下某个属性的\u003Cem\u003E值\u003C\u002Fem\u003E\n\t * @param element\t要获取属性的\u003Cem\u003E节点\u003C\u002Fem\u003E\n\t * @param attributeName\t要取\u003Cem\u003E值\u003C\u002Fem\u003E的属性名称\n\t * @return\t要获取的属性的\u003Cem\u003E值\u003C\u002Fem\u003E\n\t * @author HX_2010-01-12\n\t *\u002F\n\tpublic static String getAttribute( Element element, String attributeName ) {\n\t\treturn element.getAttribute( attributeName );\n\t}\n\t\n\t\u002F**\n\t * 获取指定\u003Cem\u003E节点\u003C\u002Fem\u003E下的文本\n\t * @param element\t要获取文本的\u003Cem\u003E节点\u003C\u002Fem\u003E\n\t * @return\t指定\u003Cem\u003E节点\u003C\u002Fem\u003E下的文本\n\t * @author HX_2010-01-12\n\t *\u002F\n\tpublic static String getText( Element element ) {\n\t\treturn element.getFirstChild().getNodeValue();\n\t}\n\t\n\t\u002F**\n\t * 解析某个\u003Cem\u003Exml文件\u003C\u002Fem\u003E,并在内存中创建\u003Cem\u003EDOM\u003C\u002Fem\u003E树\n\t * @param xmlFile\t要解析的\u003Cem\u003EXML文件\u003C\u002Fem\u003E\n\t * @return\t解析某个配置文件后的Document\n\t * @throws Exception\t\u003Cem\u003Exml文件\u003C\u002Fem\u003E不存在\n\t *\u002F\n\tpublic static Document parse( String xmlFile ) throws Exception {\n\t\t\u002F\u002F 绑定\u003Cem\u003EXML文件\u003C\u002Fem\u003E,建造\u003Cem\u003EDOM\u003C\u002Fem\u003E树\n\t\tDocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();\n\t\tDocumentBuilder db = dbf.newDocumentBuilder();\n\t\tDocument \u003Cem\u003Edom\u003C\u002Fem\u003ETree = db.parse( xmlFile );\n\t\treturn \u003Cem\u003Edom\u003C\u002Fem\u003ETree;\n\t}\n\t\n\t\u002F**\n\t * 获得某\u003Cem\u003E节点\u003C\u002Fem\u003E下的某个\u003Cem\u003E子\u003Cem\u003E节点\u003C\u002Fem\u003E\u003C\u002Fem\u003E(指定\u003Cem\u003E子\u003Cem\u003E节点\u003C\u002Fem\u003E\u003C\u002Fem\u003E名称,和某个属性的\u003Cem\u003E值\u003C\u002Fem\u003E)\n\t * 即获取parentElement下名字叫childName,并且属性attributeName的\u003Cem\u003E值\u003C\u002Fem\u003E为attributeValue的子结点\n\t * @param parentElement\t要获取\u003Cem\u003E子\u003Cem\u003E节点\u003C\u002Fem\u003E\u003C\u002Fem\u003E的那个父\u003Cem\u003E节点\u003C\u002Fem\u003E\n\t * @param childName\t要获取的\u003Cem\u003E子\u003Cem\u003E节点\u003C\u002Fem\u003E\u003C\u002Fem\u003E名称\n\t * @param attributeName\t要指定的属性名称\n\t * @param attributeValue\t要指定的属性的\u003Cem\u003E值\u003C\u002Fem\u003E\n\t * @return\t符合条件的\u003Cem\u003E子\u003Cem\u003E节点\u003C\u002Fem\u003E\u003C\u002Fem\u003E\n\t * @throws Exception\t子结点不存在或有多个符合条件的\u003Cem\u003E子\u003Cem\u003E节点\u003C\u002Fem\u003E\u003C\u002Fem\u003E\n\t * @author HX_2008-12-01\n\t *\u002F\n\tpublic static Element getChildElement( Element parentElement, String childName, String attributeName, String attributeValue ) throws Exception {\n\t\tNodeList list = parentElement.getElementsByTagName( childName );\n\t\tint count = 0;\n\t\tElement curElement = null;\n\t\tfor ( int i = 0 ; i \u003C list.getLength() ; i ++ ) {\n\t\t\tElement child = ( Element )list.item( i );\n\t\t\tString value = child.getAttribute( attributeName );\n\t\t\tif ( true == value.equals( attributeValue ) ) {\n\t\t\t\tcurElement = ","createTime":"2010-01-14 18:46:59","dataReportQuery":"spm=1035.2023.3001.6557&utm_medium=distribute.pc_relevant_bbs_down_v2.none-task-download-2~default~OPENSEARCH~Paid-1-1994715-bbs-70133880.264^v3^pc_relevant_bbs_down_v2_default&depth_1-utm_source=distribute.pc_relevant_bbs_down_v2.none-task-download-2~default~OPENSEARCH~Paid-1-1994715-bbs-70133880.264^v3^pc_relevant_bbs_down_v2_default","dataReportClick":"{\"mod\":\"popu_645\",\"index\":\"1\",\"dest\":\"https:\u002F\u002Fdownload.csdn.net\u002Fdownload\u002Fhexiang221\u002F1994715\",\"strategy\":\"2~default~OPENSEARCH~Paid\",\"extra\":\"{\\\"utm_medium\\\":\\\"distribute.pc_relevant_bbs_down_v2.none-task-download-2~default~OPENSEARCH~Paid-1-1994715-bbs-70133880.264^v3^pc_relevant_bbs_down_v2_default\\\",\\\"dist_request_id\\\":\\\"1751739284904_61547\\\"}\",\"spm\":\"1035.2023.3001.6557\"}","dataReportView":"{\"mod\":\"popu_645\",\"index\":\"1\",\"dest\":\"https:\u002F\u002Fdownload.csdn.net\u002Fdownload\u002Fhexiang221\u002F1994715\",\"strategy\":\"2~default~OPENSEARCH~Paid\",\"extra\":\"{\\\"utm_medium\\\":\\\"distribute.pc_relevant_bbs_down_v2.none-task-download-2~default~OPENSEARCH~Paid-1-1994715-bbs-70133880.264^v3^pc_relevant_bbs_down_v2_default\\\",\\\"dist_request_id\\\":\\\"1751739284904_61547\\\"}\",\"spm\":\"1035.2023.3001.6557\"}","type":"download"},{"url":"https:\u002F\u002Fblog.csdn.net\u002Fchenleixing\u002Farticle\u002Fdetails\u002F44353491","title":"\u003Cem\u003EDom\u003C\u002Fem\u003E4j解析\u003Cem\u003Exml文件\u003C\u002Fem\u003E-递归遍历所有\u003Cem\u003E节点\u003C\u002Fem\u003E和属性","desc":"引言\n       \u003Cem\u003EDom\u003C\u002Fem\u003E4j是java中常用读取\u003Cem\u003Exml文件\u003C\u002Fem\u003E的工具,就方便性和性能方面,一定程度要优于JDK中\u003Cem\u003EDom\u003C\u002Fem\u003Ecument和SAX解析的,感兴趣的童鞋可以看看这篇文章 java解析XML的四种方式及比较,相关jar包可免费下载:\u003Cem\u003Edom\u003C\u002Fem\u003E4j-1.6.1.jar,下边我就分享一下用\u003Cem\u003EDom\u003C\u002Fem\u003E4j对\u003Cem\u003Exml文件\u003C\u002Fem\u003E进行遍历,一看代码就明白了,注释的很详细。\n被测试的\u003Cem\u003Exml文件\u003C\u002Fem\u003Etest.xml","createTime":"2015-03-17 22:00:01","dataReportQuery":"spm=1035.2023.3001.6557&utm_medium=distribute.pc_relevant_bbs_down_v2.none-task-blog-2~default~OPENSEARCH~Rate-2-44353491-bbs-70133880.264^v3^pc_relevant_bbs_down_v2_default&depth_1-utm_source=distribute.pc_relevant_bbs_down_v2.none-task-blog-2~default~OPENSEARCH~Rate-2-44353491-bbs-70133880.264^v3^pc_relevant_bbs_down_v2_default","dataReportClick":"{\"mod\":\"popu_645\",\"index\":\"2\",\"dest\":\"https:\u002F\u002Fblog.csdn.net\u002Fchenleixing\u002Farticle\u002Fdetails\u002F44353491\",\"strategy\":\"2~default~OPENSEARCH~Rate\",\"extra\":\"{\\\"utm_medium\\\":\\\"distribute.pc_relevant_bbs_down_v2.none-task-blog-2~default~OPENSEARCH~Rate-2-44353491-bbs-70133880.264^v3^pc_relevant_bbs_down_v2_default\\\",\\\"dist_request_id\\\":\\\"1751739284904_61547\\\"}\",\"spm\":\"1035.2023.3001.6557\"}","dataReportView":"{\"mod\":\"popu_645\",\"index\":\"2\",\"dest\":\"https:\u002F\u002Fblog.csdn.net\u002Fchenleixing\u002Farticle\u002Fdetails\u002F44353491\",\"strategy\":\"2~default~OPENSEARCH~Rate\",\"extra\":\"{\\\"utm_medium\\\":\\\"distribute.pc_relevant_bbs_down_v2.none-task-blog-2~default~OPENSEARCH~Rate-2-44353491-bbs-70133880.264^v3^pc_relevant_bbs_down_v2_default\\\",\\\"dist_request_id\\\":\\\"1751739284904_61547\\\"}\",\"spm\":\"1035.2023.3001.6557\"}","type":"blog"},{"url":"https:\u002F\u002Fblog.csdn.net\u002Flz527657138\u002Farticle\u002Fdetails\u002F70591792","title":"Java使用\u003Cem\u003EDOM\u003C\u002Fem\u003E解析XML的文件属性名和属性\u003Cem\u003E值\u003C\u002Fem\u003E、\u003Cem\u003E节点\u003C\u002Fem\u003E名和\u003Cem\u003E节点\u003C\u002Fem\u003E\u003Cem\u003E值\u003C\u002Fem\u003E","desc":"Java使用\u003Cem\u003EDOM\u003C\u002Fem\u003E解析XML的文件属性名和属性\u003Cem\u003E值\u003C\u002Fem\u003E、\u003Cem\u003E节点\u003C\u002Fem\u003E名和\u003Cem\u003E节点\u003C\u002Fem\u003E\u003Cem\u003E值\u003C\u002Fem\u003E","createTime":"2017-04-24 13:05:31","dataReportQuery":"spm=1035.2023.3001.6557&utm_medium=distribute.pc_relevant_bbs_down_v2.none-task-blog-2~default~OPENSEARCH~Rate-3-70591792-bbs-70133880.264^v3^pc_relevant_bbs_down_v2_default&depth_1-utm_source=distribute.pc_relevant_bbs_down_v2.none-task-blog-2~default~OPENSEARCH~Rate-3-70591792-bbs-70133880.264^v3^pc_relevant_bbs_down_v2_default","dataReportClick":"{\"mod\":\"popu_645\",\"index\":\"3\",\"dest\":\"https:\u002F\u002Fblog.csdn.net\u002Flz527657138\u002Farticle\u002Fdetails\u002F70591792\",\"strategy\":\"2~default~OPENSEARCH~Rate\",\"extra\":\"{\\\"utm_medium\\\":\\\"distribute.pc_relevant_bbs_down_v2.none-task-blog-2~default~OPENSEARCH~Rate-3-70591792-bbs-70133880.264^v3^pc_relevant_bbs_down_v2_default\\\",\\\"dist_request_id\\\":\\\"1751739284904_61547\\\"}\",\"spm\":\"1035.2023.3001.6557\"}","dataReportView":"{\"mod\":\"popu_645\",\"index\":\"3\",\"dest\":\"https:\u002F\u002Fblog.csdn.net\u002Flz527657138\u002Farticle\u002Fdetails\u002F70591792\",\"strategy\":\"2~default~OPENSEARCH~Rate\",\"extra\":\"{\\\"utm_medium\\\":\\\"distribute.pc_relevant_bbs_down_v2.none-task-blog-2~default~OPENSEARCH~Rate-3-70591792-bbs-70133880.264^v3^pc_relevant_bbs_down_v2_default\\\",\\\"dist_request_id\\\":\\\"1751739284904_61547\\\"}\",\"spm\":\"1035.2023.3001.6557\"}","type":"blog"},{"url":"https:\u002F\u002Fblog.csdn.net\u002Fwodianping\u002Farticle\u002Fdetails\u002F131922688","title":"Java\u003Cem\u003Edom\u003C\u002Fem\u003E4j如何获取\u003Cem\u003E子\u003Cem\u003E节点\u003C\u002Fem\u003E\u003C\u002Fem\u003E","desc":"要获取XML文档中的\u003Cem\u003E子\u003Cem\u003E节点\u003C\u002Fem\u003E\u003C\u002Fem\u003E,我们首先需要创建一个Document对象来表示整个XML文档。本文将介绍如何使用Java\u003Cem\u003Edom\u003C\u002Fem\u003E4j来获取XML文档中的\u003Cem\u003E子\u003Cem\u003E节点\u003C\u002Fem\u003E\u003C\u002Fem\u003E。在Java\u003Cem\u003Edom\u003C\u002Fem\u003E4j中,我们可以使用XPath表达式来定位和选择XML文档中的\u003Cem\u003E节点\u003C\u002Fem\u003E。在这个示例中,我们只是简单地打印出了\u003Cem\u003E节点\u003C\u002Fem\u003E的名称和\u003Cem\u003E值\u003C\u002Fem\u003E,你可以根据自己的需求对\u003Cem\u003E子\u003Cem\u003E节点\u003C\u002Fem\u003E\u003C\u002Fem\u003E进行各种操作。总结一下,使用Java\u003Cem\u003Edom\u003C\u002Fem\u003E4j获取XML文档中的\u003Cem\u003E子\u003Cem\u003E节点\u003C\u002Fem\u003E\u003C\u002Fem\u003E非常简单。方法获取根\u003Cem\u003E节点\u003C\u002Fem\u003E的所有\u003Cem\u003E子\u003Cem\u003E节点\u003C\u002Fem\u003E\u003C\u002Fem\u003E,并将它们存储在一个列表中。最后,我们可以遍历这个\u003Cem\u003E子\u003Cem\u003E节点\u003C\u002Fem\u003E\u003C\u002Fem\u003E列表,并处理每个\u003Cem\u003E子\u003Cem\u003E节点\u003C\u002Fem\u003E\u003C\u002Fem\u003E。","createTime":"2023-07-25 17:23:15","dataReportQuery":"spm=1035.2023.3001.6557&utm_medium=distribute.pc_relevant_bbs_down_v2.none-task-blog-2~default~OPENSEARCH~Rate-4-131922688-bbs-70133880.264^v3^pc_relevant_bbs_down_v2_default&depth_1-utm_source=distribute.pc_relevant_bbs_down_v2.none-task-blog-2~default~OPENSEARCH~Rate-4-131922688-bbs-70133880.264^v3^pc_relevant_bbs_down_v2_default","dataReportClick":"{\"mod\":\"popu_645\",\"index\":\"4\",\"dest\":\"https:\u002F\u002Fblog.csdn.net\u002Fwodianping\u002Farticle\u002Fdetails\u002F131922688\",\"strategy\":\"2~default~OPENSEARCH~Rate\",\"extra\":\"{\\\"utm_medium\\\":\\\"distribute.pc_relevant_bbs_down_v2.none-task-blog-2~default~OPENSEARCH~Rate-4-131922688-bbs-70133880.264^v3^pc_relevant_bbs_down_v2_default\\\",\\\"dist_request_id\\\":\\\"1751739284904_61547\\\"}\",\"spm\":\"1035.2023.3001.6557\"}","dataReportView":"{\"mod\":\"popu_645\",\"index\":\"4\",\"dest\":\"https:\u002F\u002Fblog.csdn.net\u002Fwodianping\u002Farticle\u002Fdetails\u002F131922688\",\"strategy\":\"2~default~OPENSEARCH~Rate\",\"extra\":\"{\\\"utm_medium\\\":\\\"distribute.pc_relevant_bbs_down_v2.none-task-blog-2~default~OPENSEARCH~Rate-4-131922688-bbs-70133880.264^v3^pc_relevant_bbs_down_v2_default\\\",\\\"dist_request_id\\\":\\\"1751739284904_61547\\\"}\",\"spm\":\"1035.2023.3001.6557\"}","type":"blog"},{"url":"https:\u002F\u002Fblog.csdn.net\u002Fstudyinstall\u002Farticle\u002Fdetails\u002F139395848","title":"XML \u003Cem\u003EDOM\u003C\u002Fem\u003E获取\u003Cem\u003E节点\u003C\u002Fem\u003E\u003Cem\u003E值\u003C\u002Fem\u003E","desc":"getElementsByTagName() 方法返回包含拥有指定标签名的所有元素的\u003Cem\u003E节点\u003C\u002Fem\u003E列表,其中的元素的顺序是它们在源文档中出现的顺序。本例使用 getAttribute() 方法获取 \"books.xml\" 中第一个 \u003Ctitle\u003E 元素的 \"lang\" 属性的\u003Cem\u003E值\u003C\u002Fem\u003E。\u003Ctitle\u003E 元素只有一个\u003Cem\u003E子\u003Cem\u003E节点\u003C\u002Fem\u003E\u003C\u002Fem\u003E,即一个文本\u003Cem\u003E节点\u003C\u002Fem\u003E。与元素\u003Cem\u003E节点\u003C\u002Fem\u003E不同,属性\u003Cem\u003E节点\u003C\u002Fem\u003E拥有文本\u003Cem\u003E值\u003C\u002Fem\u003E。获取元素文本的方法,就是获取这个\u003Cem\u003E子\u003Cem\u003E节点\u003C\u002Fem\u003E\u003C\u002Fem\u003E(文本\u003Cem\u003E节点\u003C\u002Fem\u003E)的\u003Cem\u003E值\u003C\u002Fem\u003E。元素\u003Cem\u003E节点\u003C\u002Fem\u003E没有文本\u003Cem\u003E值\u003C\u002Fem\u003E。元素\u003Cem\u003E节点\u003C\u002Fem\u003E的文本存储在\u003Cem\u003E子\u003Cem\u003E节点\u003C\u002Fem\u003E\u003C\u002Fem\u003E中。获取属性的\u003Cem\u003E值\u003C\u002Fem\u003E的方法,就是获取它的文本\u003Cem\u003E值\u003C\u002Fem\u003E。","createTime":"2024-06-02 19:27:46","dataReportQuery":"spm=1035.2023.3001.6557&utm_medium=distribute.pc_relevant_bbs_down_v2.none-task-blog-2~default~OPENSEARCH~Rate-5-139395848-bbs-70133880.264^v3^pc_relevant_bbs_down_v2_default&depth_1-utm_source=distribute.pc_relevant_bbs_down_v2.none-task-blog-2~default~OPENSEARCH~Rate-5-139395848-bbs-70133880.264^v3^pc_relevant_bbs_down_v2_default","dataReportClick":"{\"mod\":\"popu_645\",\"index\":\"5\",\"dest\":\"https:\u002F\u002Fblog.csdn.net\u002Fstudyinstall\u002Farticle\u002Fdetails\u002F139395848\",\"strategy\":\"2~default~OPENSEARCH~Rate\",\"extra\":\"{\\\"utm_medium\\\":\\\"distribute.pc_relevant_bbs_down_v2.none-task-blog-2~default~OPENSEARCH~Rate-5-139395848-bbs-70133880.264^v3^pc_relevant_bbs_down_v2_default\\\",\\\"dist_request_id\\\":\\\"1751739284904_61547\\\"}\",\"spm\":\"1035.2023.3001.6557\"}","dataReportView":"{\"mod\":\"popu_645\",\"index\":\"5\",\"dest\":\"https:\u002F\u002Fblog.csdn.net\u002Fstudyinstall\u002Farticle\u002Fdetails\u002F139395848\",\"strategy\":\"2~default~OPENSEARCH~Rate\",\"extra\":\"{\\\"utm_medium\\\":\\\"distribute.pc_relevant_bbs_down_v2.none-task-blog-2~default~OPENSEARCH~Rate-5-139395848-bbs-70133880.264^v3^pc_relevant_bbs_down_v2_default\\\",\\\"dist_request_id\\\":\\\"1751739284904_61547\\\"}\",\"spm\":\"1035.2023.3001.6557\"}","type":"blog"}],"staffDOList":[{"id":null,"communityId":121,"username":"community_2","userNickname":"Java EE","roleCode":1,"status":1,"createUsername":"","updateUsername":"","avatarUrl":"https:\u002F\u002Fprofile-avatar.csdnimg.cn\u002Fdefault.jpg!1","createTime":"2021-05-12 18:01:11","updateTime":"2021-05-12 18:01:11","lastLoginTime":"2021-05-12 18:01:11"}],"communityConfig":{"scoreType":0,"scoreItems":{"0":"给本帖投票","1":"锋芒小试,眼前一亮","2":"潜力巨大,未来可期","3":"持续贡献,值得关注","4":"成绩优异,大力学习","5":"贡献巨大,全力支持"}},"shouldApply":false,"subscribeAble":false,"operatorAble":false,"commentNeedJoinCommunity":false},"default2014LiveRoom":[{"itemType":"","description":"高峰论坛","title":"2022 技术英雄会","url":"https:\u002F\u002Flive.csdn.net\u002Froom\u002Fiframe\u002Fcsdnnews\u002FfsNR5NWp?chat=1&title=1&footer=1","images":["https:\u002F\u002Fimg-home.csdnimg.cn\u002Fimages\u002F20221016050009.png"],"ext":{"time":"9:00","liveRoomUrl":"https:\u002F\u002Flive.csdn.net\u002Froom\u002Fcsdnnews\u002FfsNR5NWp"}}]},"isGooglebot":false,"canonical":"https:\u002F\u002Fwww.csdn.net\u002Ftopics\u002F70133880","openUrl":"","isApp":false,"localUrl":"https:\u002F\u002Fbbs.csdn.net\u002Ftopics\u002F70133880","typeId":"index","hasIndex":false},"CFG":{"ALIPLAYER_VERSION":"v4","ALIPLAYER_H5_VERSION":"mobile_v1","ENV":"prod","ROOT_URL":"https:\u002F\u002Fcms-mall.csdn.net\u002F","VUE_APP_API_URL_SERVER":"http:\u002F\u002Fcms-community-api.internal.csdn.net\u002F","VUE_APP_API_URL":"https:\u002F\u002Fcms-api.csdn.net\u002F","LOGIN_URL":"https:\u002F\u002Fpassport.csdn.net\u002Faccount\u002Flogin","VUE_APP_DOMAIN_SKILL":"https:\u002F\u002Fedu.csdn.net\u002F","VUE_APP_DOMAIN_PATH":"https:\u002F\u002Fedu.csdn.net\u002F","VUE_APP_COMMUNITY_API_URL":"https:\u002F\u002Fcommunity-api.csdn.net\u002F","VUE_APP_CCLOUD_API_URL":"https:\u002F\u002Fbizapi.csdn.net\u002Fcommunity-cloud\u002Fv1\u002F","VUE_APP_SKILL_API_URL":"https:\u002F\u002Fbizapi.csdn.net\u002Fskilltree\u002Fapi\u002F","VUE_APP_SEARCH_PLUGIN_API_URL":"https:\u002F\u002Fbizapi.csdn.net\u002Fsearchplugin\u002F","VUE_APP_COMMUNITY_ASK_API_URL":"https:\u002F\u002Fmp-ask.csdn.net\u002F","VUE_APP_ME_URL":"https:\u002F\u002Fme.csdn.net\u002F","VUE_APP_CCLOUD_RESUME":"https:\u002F\u002Fbizapi.csdn.net\u002Fjob-api\u002F","VUE_APP_CCLOUD_MAIN":"https:\u002F\u002Fwww.csdn.net\u002F","VUE_APP_CCLOUD_UC":"https:\u002F\u002Fwww.csdn.net\u002F","VUE_APP_CCLOUD_BZP_API_URL":"https:\u002F\u002Fbizapi.csdn.net\u002F","VUE_APP_CCLOUD_START_API_URL":"https:\u002F\u002Fmp-action.csdn.net\u002F","VUE_APP_PRACTIVE":"https:\u002F\u002Fbizapi.csdn.net\u002Fdaily-practice\u002F","VUE_APP_CCLOUD_HOSTPATH":"https:\u002F\u002Fbbs.csdn.net\u002F"},"queries":{"pageId":[],"domain":["ccloud.csdn.net\u002Fccloud\u002Fdetail1"],"id":["70133880"],"deviceType":"pc","isSpider":"","hostname":["bbs.csdn.net"]},"basePath":"bbs.csdn.net\u002Fccloud\u002Ftopics\u002F70133880","hrefUrl":"https:\u002F\u002Fbbs.csdn.net\u002Ftopics\u002F70133880","active":0,"navBarFixed":false,"title":"用dom怎么得到XML文件里的所有的节点和其子节点还有它的值啊?","isLive":false,"contentType":{"text":"text","picture":"picture","link":"link","video":"video","vote":"vote","live":"live","blog":"blog","long_text":"long_text","task_text":"task_text"},"liveUrl":"https:\u002F\u002Flive.csdn.net\u002Froom\u002Fiframe\u002F","spmExtra":{"id":121,"topicId":70133880},"keywords":"","description":"以下内容是CSDN社区关于用dom怎么得到XML文件里的所有的节点和其子节点还有它的值啊?相关内容,如果想了解更多关于Java EE社区其他内容,请访问CSDN社区。","mounted":false,"infoNoticeData":{"src":"","href":"","spm":"","delay":5},"showDialogInfoNotice":false};</script><script type="text/javascript" src="https://csdnimg.cn/release/cmsfe/public/js/runtime.2c8d4172.js"></script><script type="text/javascript" src="https://csdnimg.cn/release/cmsfe/public/js/chunk/common.9ac324e8.js"></script><script type="text/javascript" src="https://csdnimg.cn/release/cmsfe/public/js/chunk/tpl/ccloud-detail/index.93a5f007.js"></script></body> <!----> <script> window.csdn.sideToolbar = { options: { qr: { isShow: true, data: [ { imgSrc: 'https://csdnimg.cn/release/cmsfe/public/img/ewm.9010d6e5.png', desc: "关注公众号" }, ] }, help: { isShow: false, }, contentEl: document.getElementsByClassName("cloud-maintainer")[0] }, }; </script> <script src="https://g.csdnimg.cn/side-toolbar/2.9/side-toolbar.js" ></script> <!----> <!----> <!----> <script src="https://csdnimg.cn/release/blog_editor_html/release1.7.5/ckeditor/plugins/codesnippet/lib/highlight/highlight.pack.js"></script> <script src="https://g.csdnimg.cn/lib/editor-page-detail/v2.2.0/js/runDetail.min.js"></script> <!----> <!----> <!----> <!----> <!----> <!----> <script src="https://g.csdnimg.cn/collection-box/2.1.0/collection-box.js"></script> <!----> <!----> <!----> <!----> <script src="https://g.csdnimg.cn/common/csdn-cert/csdn-cert.js"></script> <!----></html>