gpt4 book ai didi

xml - 错误!关于我使用的所选 XPath 有什么建议吗?

转载 作者:行者123 更新时间:2023-12-03 17:11:24 32 4
gpt4 key购买 nike

我正在使用 HANA 云集成来构建集成流 (iFlow)。但是,任何有任何 XML 经验的人都可能对我有所帮助。

我已经构建了一个非常简单的集成流程,它与 openweathermap API 对话,提取“天气”数据,然后通过电子邮件发送特定的数据点。这是我在下面使用的 XML:

<current>
<city id="5913490" name="Calgary">
<coord lon="-114.09" lat="51.05"/>
<country>CA</country>
<sun rise="2016-02-22T14:34:54" set="2016-02-23T01:05:30"/>
</city>
<temperature value="262.098" min="262.098" max="262.098" unit="kelvin"/>
<humidity value="79" unit="%"/>
<pressure value="865.62" unit="hPa"/>
<wind>
<speed value="1.32" name="Calm"/>
<gusts/>
<direction value="262.002" code="W" name="West"/>
</wind>
<clouds value="0" name="clear sky"/>
<visibility/>
<precipitation mode="no"/>
<weather number="800" value="clear sky" icon="01n"/>
<lastupdate value="2016-02-22T14:12:31"/>
</current>

为此, weather current 中的元素需要提取根元素和 value将使用字段。这由 XPath 字符串 /current/weather/@value 组成最后一个更新字段也需要传递到集成中的下一个流程,并且可以以相同的方式提取。

我创建了两个标题属性,它们是名为 currentConditions 的字符串。和 currentReport这些指向 XPath 属性 /current/weather/@value/current/lastupdate/@value .在 XPath 中, @指的是属性而不是元素。还要记住创建这些 header 值,以便可以将它们传递给外部服务调用。如果它们是属性,它们将不会被发送到外部进程。但是,我收到此错误:

org.apache.camel.builder.xml.InvalidXPathExpression: Invalid xpath: /current/weather/@value. Reason: javax.xml.xpath.XPathExpressionException: Failure converting a node of class javax.xml.transform.sax.SAXSource: org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 1; Content is not allowed in prolog., cause: javax.xml.xpath.XPathExpressionException: Failure converting a node of class javax.xml.transform.sax.SAXSource: org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 1; Content is not allowed in prolog.



有什么建议么?

最佳答案

您的 XPath 表达式没问题。您看到的错误的根本原因是在这个嵌套异常中:

org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 1; Content is not allowed in prolog.

您从 openweathermap API 中提取的数据似乎不是格式良好的 XML。
如果 REST-API 发送错误响应,这通常会发生。您应该首先验证 API 请求是否成功返回并包含格式正确的 XML。

关于xml - 错误!关于我使用的所选 XPath 有什么建议吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35556289/

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