我知道在 DOM 中, Document 对象具有getElementsByTagName()方法。
为什么没有在任何特定节点上定义此操作?假设我有一个 Node 对象,并且我想按名称查找该 Node 的特定子节点。我真的必须实现自己的方法来遍历它的所有孩子,直到找到那个名字的孩子吗?(我没有使用 XPath。)对于一个简单的任务来说,这听起来像是很多工作。谢谢
我知道在 DOM 中, Document 对象具有getElementsByTagName()方法。
为什么没有在任何特定节点上定义此操作?假设我有一个 Node 对象,并且我想按名称查找该 Node 的特定子节点。我真的必须实现自己的方法来遍历它的所有孩子,直到找到那个名字的孩子吗?(我没有使用 XPath。)对于一个简单的任务来说,这听起来像是很多工作。谢谢
我已经测试了代码,我得到了预期的结果。所以我认为你做错了什么。
一个例子:http ://tinkerbin.com/uAgGGIM4 (点击运行运行代码)
我想你在谈论 JAVA。如果它是 Javascript,请忘记这个答案(并请相应地标记您的问题)。在这种情况下,getElementsByTagName 仅适用于“元素”对象,而不适用于“节点”对象(所有元素都是节点,但所有节点都不是元素)。
http://docs.oracle.com/javase/6/docs/api/org/w3c/dom/Element.html
如果您确定您的对象是一个元素,您可以在调用该方法之前进行强制转换
Element eElement = (Element) nNode;
您可能需要http://docs.oracle.com/javase/6/docs/api/java/lang/Class.html#isAssignableFrom%28java.lang.Class%29之前。