gpt4 book ai didi

java - 如何获取元素 ID 中的属性

转载 作者:行者123 更新时间:2023-12-01 20:24:15 24 4
gpt4 key购买 nike

我有以下 XML 数据。我想获取仅与该位置相关的纬度和经度值,而不是西南方向。我怎样才能做到这一点而不需要同时阅读《西南》。

 `<geometry>
<location>
<lat>51.5739894</lat>
<lng>-0.1499698</lng>
</location>
<southwest>
<lat>51.5727314</lat>
<lng>-0.1511809</lng>
</southwest>
</geometry>`

到目前为止,我已经尝试过:`

@Override
public void startElement(String uri, String localName, String qName, Attributes attributes){
if(localName.equals("location")){
Node n1 = new Node(
Double.parseDouble(attributes.getValue("lat"))
Double.parseDouble(attributes.getValue("lng"))
);
current = n1;
}
}`

最佳答案

如果您的 xml 不是很大,那么使用 XPathFactory 的方法就可以了。否则就使用 SAX 解析器。但是,在编写 SAX 解析器时,您需要进行额外的处理,特别是当您有像我只想要 locationlat 值这样的条件时。

我会使用xpath方法,使用起来非常简单,不需要使用第三方。可以通过java.xml来完成。*

代码为:

DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Document doc = db.parse( new File( ".//input.xml" ) );

XPathFactory xPathFactory = XPathFactory.newInstance();
XPath xpath = xPathFactory.newXPath();

XPathExpression latExpr = xpath.compile( "//location/lat" );
XPathExpression lngExpr = xpath.compile( "//location/lng" );

Object exprEval = latExpr.evaluate( doc, XPathConstants.NUMBER );
if ( exprEval != null )
{
System.out.println( "Location's lat value is :" + exprEval );
}
exprEval = lngExpr.evaluate( doc, XPathConstants.NUMBER );
if ( exprEval != null )
{
System.out.println( "Location's lng value is :" + exprEval );
}

input.xml 包含您的 xml。它使用 xpath : //location/lat 这意味着获取其父级为 locationlat 的值。并将 xpath 评估为 NUMBER

输出是:

Location's lat value is :51.5739894
Location's lng value is :-0.1499698

关于java - 如何获取元素 ID 中的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44135627/

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