节点对于 Xpath 并不总是有效

Posted

技术标签:

【中文标题】节点对于 Xpath 并不总是有效【英文标题】:nodesForXpath not always working 【发布时间】:2013-11-28 03:30:25 【问题描述】:

我在我的 ios 收音机应用程序中使用以下代码:

nodes = [rootNode nodesForXPath:@"child::Station[Genres/Genre='Pop']" error:nil];

在 XML 中获取所有类型为“POP”的广播电台。例如,其中一个站是:

    <Station>
<Name>(Top 40)</Name>
<Description>(Top 40)</Description>
<Genres><Genre>Pop</Genre></Genres>
<Logos><Logo><LogoUrl>http://blogs.slj.com/connect-the-pop/files/2013/05/Theatrics-logo-small.png</LogoUrl></Logo></Logos>
<Streams><Stream><MediaType>MP3</MediaType><BitRate>128</BitRate><StreamUrl>http://relay.radio.fm:1133/;stream</StreamUrl></Stream></Streams>
<Contacts><Contact type="General"><Name>Report Trouble</Name><Email>contact@email.com</Email><Facebook>http://www.facebook.com/</Facebook></Contact></Contacts>
</Station>

但我需要能够只获得流派而不是电台,所以我想单独接收流派列表而不是流行电台,之后我可以有另一个 tableView 与电台从上一个视图中选择的流派...我怎样才能只获得流派?

【问题讨论】:

【参考方案1】:

我希望这就够了……

  nodes = [rootNode nodesForXPath:@"//Genres" error:nil];

然后它将收集“流派”数组

即:

输出将是:

<Genre>Pop</Genre>
<Genre>Pop1</Genre>
<Genre>Pop2</Genre>
.
.
.
.

这样

再次需要“Genere”的值,然后按照以下代码进行操作

  nodes = [rootNode nodesForXPath:@"//Genre" error:nil];

【讨论】:

我可以做节点 = [rootNode nodesForXPath:@"//Genres/Genre" error:nil];获取 Genre 的值? 我还没试过我会尝试让你知道@RamGrg

以上是关于节点对于 Xpath 并不总是有效的主要内容,如果未能解决你的问题,请参考以下文章

selenium- Xpath的详细使用

通过xpath相对节点位置查找元素

XPath注入

XPath如何定位dom节点

python--通过xpath相对节点位置查找元素(续)

XPath:从子节点获取父节点