Java Xpath添加一个';自定义字符串';关于转移到其他元素
在使用XPATH和JAVA查找XML元素时,我有一个问题,其中包含一些约束。 让我知道如果需要更多的信息,或者如果有人问这个问题,请提供链接,这将有助于阅读更多 任何关于需要更改的内容的指针都会有所帮助 下面是我目前拥有的XML 从下面的XML中,我只想获取Java Xpath添加一个';自定义字符串';关于转移到其他元素,java,xml,xpath,Java,Xml,Xpath,在使用XPATH和JAVA查找XML元素时,我有一个问题,其中包含一些约束。 让我知道如果需要更多的信息,或者如果有人问这个问题,请提供链接,这将有助于阅读更多 任何关于需要更改的内容的指针都会有所帮助 下面是我目前拥有的XML 从下面的XML中,我只想获取的文本、和的,然后创建一个HashMap,其中是键,值是 到目前为止,我能够获得所有的Name、LocalAddress和zipcode列表,但无法获得特定元素的列表 <SchoolRoot> <School>
的文本、
和
的
,然后创建一个HashMap,其中
是键,值是
到目前为止,我能够获得所有的Name、LocalAddress和zipcode列表,但无法获得特定
元素的列表
<SchoolRoot>
<School>
<Name>123 School</Name>
<Address>
<LocalAddress>
<Street>This a fixed value ( In this example, lets say ) 123 St </Street>
<AptNo>This is user input Value ( Can be anything )</AptNo>
</LocalAddress>
<LocalAddress>
<Street>This a fixed value ( In this example, lets say ) 345 St </Street>
<AptNo>This is user input Value ( Can be anything )</AptNo>
</LocalAddress>
<ZipCode>123</ZipCode>
</Address>
</School>
<School>
<Name>34564 School</Name>
<Address>
<LocalAddress>
<Street>This a fixed value ( In this example, lets say ) 678 St </Street>
<AptNo>This is user input Value ( Can be anything )</AptNo>
</LocalAddress>
<LocalAddress>
<Street>This a fixed value ( In this example, lets say ) 91011 St </Street>
<AptNo>This is user input Value ( Can be anything )</AptNo>
</LocalAddress>
<ZipCode>121314</ZipCode>
</Address>
</School>
</SchoolRoot>
但预期输出将一次包含一个学校的详细信息,包括zipcode。
像这样的
123 School
This a fixed value ( In this example, lets say ) 123 St
This is user input Value ( Can be anything )
This a fixed value ( In this example, lets say ) 345 St
This is user input Value ( Can be anything ) and 'Zipcode' : <ZipCode>
123学校
这是一个固定值(在本例中,假设为)123 St
这是用户输入值(可以是任何值)
这是一个固定值(在本例中,假设为)345 St
这是用户输入值(可以是任何值)和“Zipcode”:
您可以通过指定相等条件来限制结果节点,如下所示:
XPathExpression expr=xpath.compile(“//School[Name='123 School']]/Name |///School[Name='123 School']]/Address/LocalAddress/*”代码>
这将产生您的预期结果(使用以下方法进行测试):
123学校
这是一个固定值(在本例中,假设为)123 St
这是用户输入值(可以是任何值)
这是一个固定值(在本例中,假设为)345 St
这是用户输入值(可以是任何值)
回复评论:未找到将自定义节点添加到返回节点列表的xpath
方法。但是,由于您知道节点列表输出的结构,因此可以在输出循环中使用以下内容:
for (int i = 0; i < nodes.getLength(); i++) {
if(i%5==0)
System.out.println("Custom Message - your text");
System.out.println(nodes.item(i).getFirstChild().getNodeValue());
}
}
for(int i=0;i
参考资料:
你好,Rann,谢谢你的回答。它起作用了。。。需要更多的帮助!对于我得到的上述结果,是否可以添加行或字符串来区分?因为这样可以避免有多个表达式列表。请看下面的帖子了解更多细节。你好,Rann,可以这样做吗?你好,@Rann,不,这些都是动态元素。。。这完全取决于用户输入,所以我认为%5逻辑不会work@HardikGami:您能提供一个动态示例吗?我也许能为你找到解决办法。
123 School
This a fixed value ( In this example, lets say ) 123 St
This is user input Value ( Can be anything )
This a fixed value ( In this example, lets say ) 345 St
This is user input Value ( Can be anything ) and 'Zipcode' : <ZipCode>
for (int i = 0; i < nodes.getLength(); i++) {
if(i%5==0)
System.out.println("Custom Message - your text");
System.out.println(nodes.item(i).getFirstChild().getNodeValue());
}
}