javascript - 计算在 XML 文件中有多少父节点具有相同的标记“值”
问题描述
我目前有一个 javascript 函数,可以通过特定标签计算我有多少元素,这很容易。我还想知道是否还有一种简单的方法来计算包含标签内部值的元素(或父元素)的数量。
我的 XML 文件的设置与此类似,每个 3 级嵌套都有相同的标签:
<GAMECATALOG>
<PS4>
<SHOOTER>
<NAME>Shootergame</NAME>
<PRODUCER>Microsoft</PRODUCER>
</SHOOTER>
<SHOOTER>
<NAME>Shootergame2</NAME>
<PRODUCER>UbiSoft</PRODUCER>
</SHOOTER>
<HORROR>
<NAME>Horrorgame</NAME>
<PRODUCER>UbiSoft</PRODUCER>
</HORROR>
</PS4>
<XBOX>
<ADVENTURE>
<NAME>Shootergame</NAME>
<PRODUCER>Microsoft</PRODUCER>
</ADVENTURE>
<RPG>
<NAME>Horrorgame</NAME>
<PRODUCER>UbiSoft</PRODUCER>
</RPG>
</XBOX>
</GAMECATALOG>
示例 JavaScript 代码:
var numOfPs4 = xmlDoc.getElementsByTagName("PS4")[0].children.length;
var numOfXbox = xmlDoc.getElementsByTagName("XBOX")[0].children.length;
var totalGames = numOfShooters + numOfAdventure;
//find the total number of each of the game types within PS4
var numOfShooters = xmlDoc.getElementsByTagName("SHOOTER").length;
var numOfHorrors = xmlDoc.getElementsByTagName("HORROR").length;
//find the total number of each of the game types within XBOX
var numOfAdventure = xmlDoc.getElementsByTagName("ADVENTURE").length;
var numOfRpg = xmlDoc.getElementsByTagName("RPG").length;
// count the number of games of a specific producer
var numOfUbiSoft = ???
现在我的 XML 比这个长得多,但一切都正确计数。现在我只需要能够在生产者标签中找到有多少元素包含 UbiSoft 的值。这些标签的父母或者只是值在文档中出现的次数,在这个例子中应该给我 3。
解决方案
尝试:
const producers = xml.getElementsByTagName("PRODUCER");
const numUbiSoft = Array.from(producers).filter((producer) => producer.innerHTML === 'UbiSoft').length;
推荐阅读
- ios - UITableViewCell 中的 UIStackView 中的 UICollectionview
- javascript - 如何为 vim 命令执行 tern?
- neo4j - 如何将查询中的所有节点精确匹配到另一个
- c# - 通过 C# 添加 SQL 参数不起作用,但在存储过程中进行硬编码可以吗?
- angular - 将页面选择设置为 PrimeNG p-table 的最后一页
- css - SCSS 映射值内的逗号(框阴影)
- c# - IEqualityComparer 错误
- php - 在 Laravel 中路由锚标记的最佳方法
- react-native - 如何创建用户最后一次在线的“最后一次看到”时间?
- python - 我怎样才能刮掉所有击球手的名字?