小编D.Q*_*.Q.的帖子

如何使用 xslt 选择第一次出现的节点

我有一个 xml,如下所示:

\n\n
<bookstores>\n    <bookstore>\n        <book id="1">\n            <author>ABC</author> \n        </book>\n        <book id="2">\n            <title>YYY</title> \n        </book>\n    </bookstore>\n    <bookstore>\n        <book id="3">\n            <author>ABC</author> \n        </book>\n        <book id="4">\n            <author>DEF</author> \n        </book>\n    </bookstore>\n    <bookstore>\n        <book id="5">\n            <price>50</price>\n        </book>\n        <book id="6">\n            <title>ZZZ</title> \n        </book>\n    </bookstore>\n</bookstores>\n
Run Code Online (Sandbox Code Playgroud)\n\n

我想选择“book”节点的子节点的第一次出现,或者换句话说,选择“book”节点的所有唯一子节点。

\n\n

所以输出应该是这样的:

\n\n
author\ntitle\nprice\n
Run Code Online (Sandbox Code Playgroud)\n\n

我写了一个xslt:

\n\n
<xsl:for-each select="bookstores/bookstore/book"> \n    <xsl:if test="count(preceding-sibling::*[1]) = 0">\n        <xsl:value-of select="local-name(*[1])"/>\n    </xsl:if>\n</xsl\xef\xbc\x9afor-each>\n
Run Code Online (Sandbox Code Playgroud)\n\n

它没有给我带来任何回报...任何人都可以给我一些帮助吗?谢谢!!

\n\n

更新:

\n\n

如果我的 xml 中有多个“bookstores”元素,并且我只想限制每个“bookstores”上下文中的唯一性,以便即使“author”也出现在一个“bookstores”中,该怎么办,如果出现在其他“书店”中还能显示吗?

\n

xslt xpath

5
推荐指数
1
解决办法
9388
查看次数

HTMLParser.HTMLParser().unescape()不起作用

我想将HTML实体转换回人类可读格式,例如'&pound;''£','&deg;''°'等.

我已经阅读了几个关于这个问题的帖子

使用Python 2.x将html源代码内容转换为可读格式

在Python字符串中解码HTML实体?

在Python中将XML/HTML实体转换为Unicode字符串

根据他们的说法,我选择使用未记录的函数unescape(),但它对我不起作用...

我的代码示例如下:

import HTMLParser

htmlParser = HTMLParser.HTMLParser()
decoded = htmlParser.unescape('&copy; 2013')
print decoded
Run Code Online (Sandbox Code Playgroud)

当我运行这个python脚本时,输出仍然是:

&copy; 2013
Run Code Online (Sandbox Code Playgroud)

代替

© 2013
Run Code Online (Sandbox Code Playgroud)

我正在使用Python 2.X,在Windows 7和Cygwin控制台上工作.我用谷歌搜索,没有发现任何类似的问题.有人可以帮我这个吗?

html python unicode

4
推荐指数
3
解决办法
1万
查看次数

如何快速匹配字符串(短语)与HashMap值?

我有一个HashMap,其键是id,其值是文本:

HashMap<String,String> textMap = new HashMap<String,String>();
textMap.put("id_1","She");
textMap.put("id_2","has");
textMap.put("id_3","a"); 
textMap.put("id_4","neck");
textMap.put("id_5","pain");
//.. more elements in textMap
Run Code Online (Sandbox Code Playgroud)

我想找到一个短语的相关id,比如'颈部疼痛',所以在这种情况下,结果应该是id_4和id_5.

任何人都可以建议一个有效的算法来匹配短语与ids?

对不起,我忘了包含一个重要的条件.我有短语和单词的偏移量,比如"start_5_end_14",这意味着5应该是"颈部"的开始,因为"她"的开头为0.但是,使情况复杂化的是偏移可能不正确.

java algorithm data-structures

3
推荐指数
1
解决办法
414
查看次数

标签 统计

algorithm ×1

data-structures ×1

html ×1

java ×1

python ×1

unicode ×1

xpath ×1

xslt ×1