xpath根据其属性搜索节点

时间:2016-06-23 20:19:30

标签: search xpath attributes fxml

我不确定如何说出这个问题,也许这就是为什么我无法在其上找到一个主题......但是......

我希望从FXML中获取TextFields的所有fx:id。

<GridPane alignment="center" hgap="10" vgap="10">
    <TextField fx:id="_azimuth" GridPane.columnIndex="1" />
    <TextField fx:id="_elevation" GridPane.columnIndex="1" GridPane.rowIndex="1" />

</GridPane>

我环顾四周,看了几个关于如何根据fxml元素的id或属性解析搜索,但不是相反...

例如(从未测试过此代码,但它类似于我所指的示例):

String expression = "/GridPane/TextField[@fx:id='_elevation']";

我只是在寻找这个反...:\

如果之前已经在另一个帖子中回答了这个问题,请你指点我吗?谢谢你的时间!

编辑:放置标签而不是TextFields。遗憾!

1 个答案:

答案 0 :(得分:0)

我最终通过我的导师找到了答案,但是在我将FXML读入NodeList之后,这里是代码片段。

Node node = (Node) xPath.compile(expression).evaluate(xmlDocument, XPathConstants.NODE);
NodeList temp = node.getChildNodes();
for(int i = 0; i < temp.getLength(); i++){
    System.out.println(i + ": " + temp.item(i).getNodeName());
    if(temp.item(i).getNodeName().equals("TextField")){
        System.out.println(temp.item(i).getAttributes().getNamedItem("fx:id").getNodeValue());
    }
}

输出:

1: TextField
_elevation
2: #text