- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我问了this question前一段时间,答案是使用这些数据结构:DOMNode
、DOMNodeList
和方法 -childNodes:
。
这两个数据结构在 OS X 文档中没有文档;我发现的唯一有趣的文档是在 header 中:DomText.h
,在 Webkit 框架内。
childNodes
给出了一些结果,但我无法确定它们是否与 Webkit 相关:NSTreeNode
。
代码来自:http://cocoadev.com/wiki/DOMCore
这些数据结构似乎映射到 DOM 规范,但我不喜欢重用我无法从文档中自己重写的代码。感觉就像巫毒编程。
那么我应该从哪里开始呢?是否有在 Objective-C 中遍历 DOM 的文档?
最佳答案
DOMNode、DOMNodeList 是来自 webkit 的类,列在:
WebKit Objective-C Framework Reference
该引用文献还有一个链接:
WebKit Objective-C Programming Guide
这些链接位于互联网上。如果您想在 Xcode 文档中查看它们,只需使用标题或类搜索它们即可。
您还可以找到 WebKit DOM Programming Topics使用
------------更新
这些链接应该能让您了解如何使用 DOM Objective-C API
在 Using the Document Object Model from Objective-C 中引用WebKit Objective-C 编程指南
部分The Document Object Model API implements the Level 2 Document Object Model (DOM) specification, developed by the World Wide Web Consortium. This specification provides a platform and language-neutral interface that allows programs and scripts to dynamically access and change the content, structure and style of a document —usually HTML or XML—by providing a structured set of objects that correspond to the document’s elements.
The intention of the DOM Objective-C API is to conform to—as close as technically possible—the W3C DOM specification. Therefore, standard Cocoa conventions such as method naming, argument titling, and exception handling may not be reflected in this API. Following a few conventions discussed in this article, you can derive the DOM Objective-C API from the specification. This article also discusses the differences between the DOM specification and DOM Objective-C API.
来自 w3 org您还可以查看:
关于objective-c - DOMNode、DOMNodeList 和其他 Webkit 数据结构的文档在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19437793/
这个附加过程工作正常: document.getElementById('x').appendChild( document.importNode(node, true) ) 但是当我尝试 jQue
我正在尝试使用 jquery 加载 dojo 图表。我正在使用这段代码。但是在第二次单击时,在第一个按钮中出现此错误。如果我单击第一个按钮,单击第二个按钮,然后再次单击第一个按钮,也会发生同样的情况。
我有一个具有某些属性的 DOMNode 对象。 $Node->attributes 是一个 DOMNamedNodeMap,它没有删除映射中的条目之一的方法。 DOMNode 类也没有从元素中删除属性
我正在尝试使用与 Dialog 相同的 templateString 设置自定义对话框,但添加 Custom进入内容区域。 require([ "dojo/_base/declare",
我正在尝试替换所有 DOMDocument 中带有 的元素元素。做到这一点的最好方法似乎是捕获所有 使用 getElementsByTagName 元素,然后创建新元素来替换它们。 问题是,我看不
当获取在 nodeValue 中有实体的 DOMNode 对象的 nodeValue(即 a & gt;)时,它将实体转换为它的可打印字符(即 >) 有没有人知道一种方法可以让它保持作为一个实体,当它
我需要一种方法来识别对象(DOMNode 类型)的属性是否发生了更改(或者被创建或删除,可选)。 我有一个 INPUT 元素,并且在修改属性 .value 时必须收到通知。问题是没有有一个 attr
假设我的组件有一个 DOMNode(就像 一样简单),另一个组件也可以控制它。 有什么方法可以防止其他组件通过 JS 设置样式属性? 例如,我设置了domNode.style.color = "bl
我正在尝试在我的 html 字符串中插入节点。我的目标是在每个 h2 标签之前插入一个元素。 为此,我正在使用: $htmlString = "some html"; $DOM = new DOMDo
我对如何重新排序节点有点困惑。我正在尝试添加两个简单的“向上移动项目”和“向下移动项目”功能。虽然 insertBefore() 做了我想在前一个节点之前移动同级节点的操作,但在 DOM 中向下移动一
我正在使用 xpath 表达式来确定我的 DOM 树中的某个 div 类(感谢 VolkerK!)。 foreach($xpath->query('//div[@class="posts" and d
我使用 Xerces C++ API 编写了一个 XML 解析器。我有获取似乎间歇性工作的节点值的方法,我不确定为什么。 我是 XML 的新手,如果我的行话不正确,请原谅我。 例如,我可以像下面这样成
我对这两个术语感到困惑。浏览器端javascript编程有什么区别?我使用dojo作为框架。并且只有domNode的概念。但浏览器调试器总是告诉我一些 htmlelement 的信息。它们只是同一个东
我正在动态创建一个 XML 文档。我需要知道我刚刚创建的节点的 XPath。我没有看到像 DOMNode::calculateXPath(void):string 这样的函数我不愿意自己写一个。是否有
如何从 HTML 片段的字符串创建 DOMNode,当然假设该字符串包含单个根节点? 最佳答案 DOMDocumentFragments 确实有一个loadXML() 方法 libxml_use_in
我目前正在尝试使用 DOMDocument 解析文档,但遇到了一些严重的问题。我创建了一个在 php 5.2.9 上运行良好的脚本,使用 DOMNode::nodeValue 删除内容。相同的脚本无法
我一直在尝试像这样合并两个 XML 文档: $def = new DOMDocument( '1.0' ); $rdef = new DOMDocument( '1.0' ); $def->load
例如我有两个 DOMNode: 让node1 = document.querySelector('#node-1'); 让node2 = document.querySelector('#node-2
所以这是行不通的: foreach ($element->attributes as $attribute) { $element->removeAttribu
我想将 DOMNode 对象从对 getElementsByTagName() 的调用转换为 DOMElement 以便访问像 这样的方法getElementsByTagName() 在子元素上。在任
我是一名优秀的程序员,十分优秀!