- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我试图让 getElementByTagName("NAME").item(0).getTextContent()
将 xml 的所有子元素("CONNECTION"
和 "DISTANCE"
)打印到控制台。 item(0)
调用显然只打印 ArrayList
连接的第一个元素。
xml:
<ROW>
<FACILITY>SEATTLE, WA</FACILITY>
<CONNECTIONS>
<CONNECTION>
<NAME>FARGO, ND</NAME>
<DISTANCE>1426</DISTANCE>
</CONNECTION>
<CONNECTION>
<NAME>SAN FRANCISCO, CA</NAME>
<DISTANCE>808</DISTANCE>
</CONNECTION>
</CONNECTIONS>
</ROW>
<ROW>
<FACILITY>SAN FRANCISCO, CA</FACILITY>
<CONNECTIONS>
<CONNECTION>
<NAME>SEATTLE, WA</NAME>
<DISTANCE>808</DISTANCE>
</CONNECTION>
<CONNECTION>
<NAME>DENVER, CO</NAME>
<DISTANCE>1249</DISTANCE>
</CONNECTION>
<CONNECTION>
<NAME>LOS ANGELES, CA</NAME>
<DISTANCE>382</DISTANCE>
</CONNECTION>
</CONNECTIONS>
</ROW>
java:
ArrayList<String> connections = new ArrayList<>();
NodeList connectionsList = elem.getElementsByTagName("CONNECTIONS");
for (int j = 0; j < connectionsList.getLength(); j++) {
if (connectionsList.item(j).getNodeType() == Node.TEXT_NODE) {
continue;
}
entryName = connectionsList.item(j).getNodeName();
if (!entryName.equals("CONNECTIONS")) {
System.err.println("Unexpected node found: " + entryName);
return;
}
// Get some named nodes
elem = (Element) connectionsList.item(j);
String connectionName = elem.getElementsByTagName("NAME").item(0).getTextContent();
String connectionDist = elem.getElementsByTagName("DISTANCE").item(0).getTextContent();
facilities.addConnection(facilityName, connectionName, (Integer.parseInt(connectionDist)));
// Create a string summary of the tags
connections.add(connectionName + ":" + connectionDist);
}
输出应如下所示:
Facility: SEATTLE, WA Direct Links: [FARGO, ND:1426, SAN FRANCISCO, CA:808]
Facility: SAN FRANCISCO, CA Direct Links: [SEATTLE, WA:808, DENVER, CO:1249, LOS ANGELES, CA:382]
实际输出仅打印第一个城市(“CONNECTION”
)和每行的里程。
任何帮助表示赞赏。
最佳答案
根据您的 xml 结构,您需要迭代 CONNECTION 节点,并为每个节点打印 NAME 和 DISTANCE 文本内容。
NodeList connectionsList = doc.getElementsByTagName("CONNECTIONS");
for (int j = 0; j < connectionsList.getLength(); j++) {
if (connectionsList.item(j).getNodeType() == Node.TEXT_NODE) {
continue;
}
String entryName = connectionsList.item(j).getNodeName();
if (!entryName.equals("CONNECTIONS")) {
System.err.println("Unexpected node found: " + entryName);
return;
}
// Get some named nodes
Node elem = (Element) connectionsList.item(j).getChildNodes(); // list of CONNECTION ELEMENTS
List<String> facilities = new ArrayList<String>();
for(int i = 0 ; i< elem.getChildNodes().getLength() ;i++){
Node subElem = elem.getChildNodes().item(i); //CONNECTION ELEMENT
String connectionName ="";
String connectionDist = "";
for(int k = 0 ; k< subElem.getChildNodes().getLength(); k++){
Node connectionElem = subElem.getChildNodes().item(k);
if("NAME".equals(connectionElem.getNodeName())){
connectionName = connectionElem.getTextContent();
}
else if("DISTANCE".equals(connectionElem.getNodeName())){
connectionDist = connectionElem.getTextContent();
}
if(!connectionDist.equals("") && !connectionName.equals("")) {
facilities.add(connectionName + " , " + connectionDist);
connectionDist ="";
connectionName = "";
}
}
}
System.out.println("Facility: "+doc.getElementsByTagName("FACILITY").item(j).getTextContent() +" Direct Links: "+facilities);
}
关于java - 来自 org.w3c.dom 的 getElementsByTagName 未获取所有子节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35450154/
亲爱的专家们,我对 javascript 还很陌生,我经常看到编码人员互换使用这些行。 document.body.getElementsByTagName(); 和 document.getElem
是否有代码可以使用javascript获取其他网站的元数据信息,例如标题、关键字?document.getElementById 将帮助获取当前文档的信息。同样是否有代码可以获取当前文档以外的信息。
问题是创建一个函数 showLink(),它有一个变量 sIndx,该变量指向当前选择列表中所选选项的索引。 Select a Web siteThe White House
首先声明我不是 JavaScript 开发人员,所以这个问题可能相当基础。 模拟IE的非标准时all我正在使用 getElementsByTagName("*") 属性,这两种方法之间是否存在显着的性
我正在开发一个使用 SOAP 调用将请求数据导入 Excel 的项目。我可以毫无问题地返回 XML,它看起来像这样。
我有以下 XML(它实际上是一个 gpx 文件) Move 12 2017-05-05T06:25:41.000Z
脚本有问题吗?或者 getElementsbyTagName 已被弃用? t=document.getElementsByTagName('input')[0]; document.write(t.
我的页面包含许多双击脚本 我在主体顶部插入了 js 代码(通过 s.src=('parts_async_dev.js')): var innerHTML = document.getElementsB
我认为它应该只返回完全匹配。 我在我必须使用的源代码中看到类似的内容: var someArray = someObject.getElementsByTagName("item"); 除了当我检查
我遇到了这个非常奇怪的 js 问题。 总之,如果我使用(document.getElementsByTagName("p"))[0],我会得到一个找不到的元素 如果p标签位于 div 内像这样 se
正如标题所示,我想排除脚本标记。 因为使用正则表达式时(至少我认为这是正确的名称:P) 我已经到了某事的地步 var wdc = /something/g; 包含在内 var foundwdc = w
有人可以解释一下为什么我的代码不起作用!! 当我通过 Id 获取元素时,它工作得很好。但与 getElementsByTagName() 相同的方法却不会。 如果我使用 querySelector()
我正在使用 python 的 xml.dom.minidom 来解析一个 xml。我必须从多个标签中获取元素并处理它们。场景是这样的: 我有两种标签类型,并且在我使用 getElementsByTag
我正在使用 Java 应用程序读取 XML 文件并对其进行处理。该应用程序在大多数情况下都有效,但在某些情况下则无效。我有一个包含项目列表的 XML 文档。该应用程序读取文档并编译所述项目的列表,如下
在 php 中,我可以在任何 DOM 对象上使用 getElementsByTagName,但 JavaScript 似乎没有这个概念。 IE 如果 var detailsNode 是一个特定的节点,
Favorite beverages : Tea Coffee Milk 我想要'ul'中'li'的总数 Method 1 : It doesn't w
我正在尝试更改我页面中每个 h1 的颜色,但使用此代码它不会更改任何内容: function toggleDark() { document.body.style.background = "#1
只是看看别人的.js代码来学习,这个使用jQuery的网站居然引用了: document.getElementsByTagName 我猜这比使用 jQuery 选择器更快,它在所有浏览器中都安全吗?
我正在研究基于 xml 内容显示图像的内容流。我正在将它构建为一个站点,因此它是 html 和 javascript,并且出于某些未知原因 - 相信我,我已经尽可能精细地梳理它 - 我的 javasc
我的最终目标是获取单选按钮列表并选中/取消选中它们。这是我的代码: for (var radio in document.getElementsByTagName('input')) {
我是一名优秀的程序员,十分优秀!