Похоже, вы должны использовать groupBy: ["group", "name"]
вместо id
.
К сожалению, связанная визуализация Grouped TreeMap относится к версии 1.0 d3Plus, здесь вы можете увидеть старые примеры, включая упомянутые https://d3plus.org/examples/1.0/ [114 ]. d3Plus-реагирует на использование версии 2.0 d3Plus, и при использовании компонента Treemap вы используете иерархию d3plus , и в этом случае визуализация в виде группы выглядит следующим образом https://d3plus.org/examples/d3plus -иерархия / Getting-Start / , без интерактивности вы хотите на клик.
Чтобы показать всплывающую подсказку со значением в этой версии, необходимо передать tooltipConfig
конфигурацию.
const methods = {
groupBy: ["group", "name"],
data: [
{ value: 100, name: "alpha", group: "group 1" },
{ value: 70, name: "beta", group: "group 2" },
{ value: 40, name: "gamma", group: "group 2" },
{ value: 15, name: "delta", group: "group 2" },
{ value: 5, name: "epsilon", group: "group 1" },
{ value: 1, name: "zeta", group: "group 1" }
],
tooltipConfig: {
body: d => `Value: ${d.value}`,
title: d => `${d.name}`
}
}
По этой ссылке есть все, что вам нужно. В коротких:
public static void main(String[] args)
throws ParserConfigurationException, SAXException,
IOException, XPathExpressionException {
DocumentBuilderFactory domFactory =
DocumentBuilderFactory.newInstance();
domFactory.setNamespaceAware(true);
DocumentBuilder builder = domFactory.newDocumentBuilder();
Document doc = builder.parse("persons.xml");
XPath xpath = XPathFactory.newInstance().newXPath();
// XPath Query for showing all nodes value
XPathExpression expr = xpath.compile("//person/*/text()");
Object result = expr.evaluate(doc, XPathConstants.NODESET);
NodeList nodes = (NodeList) result;
for (int i = 0; i < nodes.getLength(); i++) {
System.out.println(nodes.item(i).getNodeValue());
}
}
Я полагаю, что выражение XPath для этого было бы"//category/subCategoryList/category
". Если Вы просто хотите детей корня category
узел (принимающий это корневой узел документа), попробуйте"/category/subCategoryList/category
".
Это будет работать на Вас:
NodeList nodes = (NodeList) xpath.evaluate("//category//subCategoryList/category",
inputSource, XPathConstants.NODESET);
Затем можно проанализировать детей категории, как Вы желаете.