gpt4 book ai didi

xml - xpath 从 child 那里获得值(value)

转载 作者:行者123 更新时间:2023-12-03 16:43:25 25 4
gpt4 key购买 nike

从一个名字我如何得到 sibling ?我不喜欢嵌套的。只有同一级别的。这怎么可能?

<root available-locales="en_US" default-locale="en_US">
<dynamic-element instance-id="qk6m4eST" name="image" type="image" index-type="">
<dynamic-element instance-id="fHkE2dfT" name="subimage" type="image" index-type="">
<dynamic-element instance-id="jbthDbC4" name="x" type="text" index-type="">
<dynamic-content>23</dynamic-content>
</dynamic-element>
<dynamic-element instance-id="Rb3qRF6N" name="y" type="text" index-type="">
<dynamic-content>32</dynamic-content>
</dynamic-element>
<dynamic-content><![CDATA[C:\fakepath\images (1).jpeg]]></dynamic-content>
</dynamic-element>
<dynamic-content><![CDATA[C:\fakepath\images (1).jpeg]]></dynamic-content>
</dynamic-element>
<dynamic-element instance-id="MFrJW4OR" name="image" type="image" index-type="">
<dynamic-element instance-id="hjKEtVB6" name="subimage" type="image" index-type="">
<dynamic-element instance-id="NrY9iZ4K" name="x" type="text" index-type="">
<dynamic-content>23</dynamic-content>
</dynamic-element>
<dynamic-element instance-id="7lG7RuAC" name="y" type="text" index-type="">
<dynamic-content>32</dynamic-content>
</dynamic-element>
<dynamic-content><![CDATA[C:\fakepath\grillat.jpeg]]></dynamic-content>
</dynamic-element>
<dynamic-content><![CDATA[C:\fakepath\images (1).jpeg]]></dynamic-content>
</dynamic-element>
</root>

到目前为止,这是我的代码。它打印

测试...... 23

这就是第一个嵌套 child 的值(value)。 23
public List<PopupImage> getImageNodes(Document document) {
List<Node> nodes = document.selectNodes("/root/dynamic-element[@name='" + IMAGE_NODE_NAME + "']");

List<PopupImage> popupImages = new ArrayList<PopupImage>();
for (Node node : nodes) {
// node.selectSingleNode("//following-sibling::dynamic-content[1]").getText();
System.out.println("test...... " + node.selectSingleNode("//following-sibling::dynamic-content").getText());
createPopupImage(node);
popupImages.add(createPopupImage(node));
}
return popupImages;
}

编辑:我需要每个图像节点和其中的动态值的值。
<root>
<dynamic-element name=image>
<dynamic-element name=subimage/>
<dynamic-content>content1</dynamic-content>
</dynamic-element>

<dynamic-element name=image>
<dynamic-element name=subimage/>
<dynamic-content>content2</dynamic-content>
</dynamic-element>
</root>

编辑2:

澄清更多。我需要将每个图像节点与其中的动态内容配对。

最佳答案

使用 :

/*/dynamic-element[@name='image'][1]/dynamic-content

这会选择任何 dynamic-content那是 dynamic-element 的 child 那是第一个 dynamic-element顶部元素的子元素,其 name属性的字符串值为字符串 "image" .

而这个 XPath 表达式 :
/*/dynamic-element[@name='image']/dynamic-content

选择 :
<dynamic-content>C:\fakepath\images (1).jpeg</dynamic-content>
<dynamic-content>C:\fakepath\images (1).jpeg</dynamic-content>

如果您只需要文本节点,请使用 :
/*/dynamic-element[@name='image']/dynamic-content/text()

这将选择前一个表达式选择的元素的以下两个文本节点子节点:
C:\fakepath\images (1).jpeg
C:\fakepath\images (1).jpeg

您可以通过迭代返回的 XmlNodeList来获取所选节点的值并获得每个 XmlNode 的值包含在那里的对象。

关于xml - xpath 从 child 那里获得值(value),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11810325/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com