Delphi - XML - 子节点 - 获取属性
我正在尝试从 Twitteratom/xml 提要中获取正确的数据。 我在 txmldocument 中有 twitter 数据,并试图从中获取一些特定信息。
以下是数据的截断示例:
<entry>
<link type="text/html" rel="alternate" href="http://twitter.com/blub/statuses/1501068" />
<title>title of twitter post goes here</title>
<link type="image/png" rel="image" href="http://s3.amazonaws.com/twitter_production/profile_images/234870532/normal.jpg" />
</entry>
我遇到的问题是我正在尝试获取个人资料图像 url(第二个链接标记的 href 属性)。
如果我使用这样的代码:
i:=xmldocument1.DocumentElement.ChildNodes['entry'];
text:=(i.ChildNodes['link'].GetAttributeNS('href',''));
我得到的是第一个链接标记的 href 值,但我想要第二个链接标记,但我不知道具体该怎么做。 有人有什么想法吗?
谢谢。
I am trying to get the correct data from a twitter atom/xml feed. I have the twitter data in a txmldocument and am trying to get some specific information from it.
Here is a truncated example of the data:
<entry>
<link type="text/html" rel="alternate" href="http://twitter.com/blub/statuses/1501068" />
<title>title of twitter post goes here</title>
<link type="image/png" rel="image" href="http://s3.amazonaws.com/twitter_production/profile_images/234870532/normal.jpg" />
</entry>
The problem I have is that I am trying to get the profile image url (the href attribute of the second link tag).
If I use code like this:
i:=xmldocument1.DocumentElement.ChildNodes['entry'];
text:=(i.ChildNodes['link'].GetAttributeNS('href',''));
What I get is the href value of the FIRST link tag, but I want the SECOND link tag, and I don't know exactly how to do that. Does anybody have any ideas?
thanks.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您可以这样做:
因为
ChildNodes
是一个IXMLNodeList
对象。 确保检查节点“2”是否存在以及它是否具有type="image/png"
属性 - 始终验证您的数据。这是Delphi文档的一部分,
You could do this:
because
ChildNodes
is anIXMLNodeList
object. Make sure that you check if node '2' exists and if it has thetype="image/png"
property - always validate your data.Here is a part of the Delphi documentation,
尼克的解决方案有效,但假设图像元素始终是第三个子节点。 如果由于某种原因不是这样,那么您将再次遇到问题。 更好的解决方案是循环遍历子节点并检查属性 type="image/png" 的节点。
Nick's solution works but assumes the image element is always the third child node. If for some reason it isn't then you will run into problems again. A better solution is to loop through the child nodes and check for the one with the attribute type="image/png".
*添加节点名称
*added Nodename