提问人: 提问时间:10/8/2022 更新时间:1/4/2023 访问量:53
如何在使用 DOM 时访问特定标签?
How could I reach a specific tag while using DOM?
问:
请告诉我如何到达“autovehicul”,而语言是英语,它的兄弟姐妹是汽车。谢谢。 如果选择了语言英语并选择了汽车,在网络服务中,如果存在罗马尼亚语,我的答案必须是 autovehicul。
你怎么能解析那个xml来得到这样的答案。我在定位特定节点时遇到了问题。条件 - 节点列表 - 迭代 - 条件 - 节点 - get 标签。然后,我必须建立 autovehicul 内容的节点,并获得所需的结果。
<Word>
<equivalent>
<language>english</language>
<word-translate>car</word-translate>
</equivalent>
<equivalent>
<language>romanian</language>
<word-translate>autovehicul</word-translate>
</equivalent>
</Word>
答:
0赞
JuniorAnonymDeveloper
10/8/2022
#1
我不太明白这个问题,但我认为您可能会寻找这样的东西:链接
评论
0赞
10/9/2022
如果选择了语言英语并选择了汽车,在网络服务中,我的答案必须是 autovehicul。
0赞
Andreea Purta
10/13/2022
#2
您可以尝试如下操作:
<!DOCTYPE html>
<html>
<body>
<p id="demo"></p>
<script>
var parser, xmlDoc;
var text = "<Word> <equivalent><language>english</language><word-translate>car</word-translate></equivalent>" +
"<equivalent><language>romanian</language><word-translate>autovehicul</word-translate></equivalent></Word>";
parser = new DOMParser();
xmlDoc = parser.parseFromString(text,"text/xml");
document.getElementById("demo").innerHTML =
xmlDoc.getElementsByTagName("word-translate")[1].childNodes[0].nodeValue;
</script>
</body>
</html>
或者您可以尝试 XPath 以更轻松地访问。
评论
0赞
10/14/2022
我的问题是如何到达一个节点。我有一个简单的目标标签。你使用 NodeList,遍历它,放置一个条件(如果存在语言),然后 Node 类来获取目标标签。XPath 永远不会使用标签。如果我能修改 .xml,生活会更轻松。他们说,只是标签。它必须很简单。<单词> <罗马尼亚语>autovehicul</罗马尼亚语> <英语>汽车</英语> <西班牙语>coche</西班牙语> <意大利语>auto</意大利语> <瑞典语>bil</瑞典语> <希腊语>αυτοκίνητο</希腊语> </word> 从意大利语中获取我的汽车。这就是我所需要的。
0赞
user19554908
1/4/2023
#3
显然,如果这个问题没有解决,我就不能再添加更多问题了。 DOM不是一个好主意。它有效,但你需要硬编码,女巫对我没有多大帮助。相反,我放弃了 DOM 并使用了另一种方式。不幸的是,我不能向你展示代码,因为它是学校作业的一部分,我们有一个遵守的协议。 我只能说你可以分析你的文档,并使用SAX或StAX解析它。 那些试图帮助我的人喜欢女士。Purta,给了我一个使用ID的答案,谢谢你的时间。我试着选择你的答案作为一个好的答案,但我必须在 15 级......大师药水等级...在我自己的职位上有发言权。 :D 我不能再问更多的问题,在这些问题以某种方式得到解决之前,我不会问更多问题。问题出在学校的规定上。他们是卑鄙的人。
NodeList wordNode = document.getElementsByTagName(word);
for (int i = 0; i < wordNode.getLength(); i++) {
Node node = wordNode.item(i);
if (node.getNodeType()== Node.ELEMENT_NODE){
Element eElement = (Element) node;
String result ="romanian";
switch (result) {
case "english" -> result = eElement.getElementsByTagName("english").item(0).getTextContent();
case "romanian" -> result = eElement.getElementsByTagName("romanian").item(0).getTextContent();
case "spanish" -> result = eElement.getElementsByTagName("spanish").item(0).getTextContent();
case "italian" -> result = eElement.getElementsByTagName("italian").item(0).getTextContent();
case "swedish" -> result = eElement.getElementsByTagName("swedish").item(0).getTextContent();
case "greek" -> result = eElement.getElementsByTagName("greek").item(0).getTextContent();
}
return result;
}
if (node.getNodeType() == Node.ELEMENT_NODE){
Element sElement = (Element) node;
String source = "english";
switch (source){
case "english" -> source = sElement.getParentNode().getNodeName();
case "romanian" -> source = sElement.getParentNode().getNodeName();
case "spanish" -> source = sElement.getParentNode().getNodeName();
case "italian" -> source = sElement.getParentNode().getNodeName();
case "swedish" -> source = sElement.getParentNode().getNodeName();
case "greek" -> source = sElement.getParentNode().getNodeName();
}
return source;
}
} 返回 null;
ID 不是解决方案,但它有效。XPath 也有效。 仅此而已!
评论