【问题标题】:BIRT parse XML with XPathBIRT 使用 XPath 解析 XML
【发布时间】:2019-12-16 19:25:33
【问题描述】:

对 XPath 表达式和 XML 非常陌生。我需要从 XML 文件中获取 SatNum、Priority 和 SatName。 这是 XML 文件:

<? xml version = "1.0" encoding = "utf-8" standalone = "yes"?>
<sats xmlns = "http://test/data">
    <sat SatNum = "900">
        <satName Priority = "1">
            <SatName>JOSH</SatName>
        </satName>
    </sat>
</sats>

我尝试了这些 XPath 表达式,但仍然无法获取任何节点。

/sats/*
x:sats
x:xmlns
/*[local-name()='sats']
/*[local-name()='xmlns']
/*:xmlns
/*:sats

感谢任何帮助。

【问题讨论】:

    标签: java xml parsing xpath birt


    【解决方案1】:

    试试

    //sats/(sat/@SatNum,.//satName/@Priority,//SatName/text())
    

    //sats[1]/(sat/data(@SatNum),sat/satName/data(@Priority),sat/satName/SatName/data(text()))
    

    输出:

    900

    1

    乔希

    【讨论】:

    • 感谢您的建议,我都尝试了,但出现以下错误:javax.xml.transform.TransformerException:A location step is expected after the '/' or '//' token .我对 XPath 很陌生,所以我不太确定这意味着什么。
    • javax.xml.transform.TransformerException:在 '/' 或 '//' 标记之后需要定位步骤
    • @1122335 - 检查您的处理器是否支持 xpath 2.0 语法(如上所示)。如果它只支持 xpath 1.0,这将不起作用。
    • 不支持 xpath 2.0。感谢您的帮助。
    • @1122335 - 很抱歉;我应该先问你这个……
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-03-21
    • 1970-01-01
    • 2012-01-08
    • 2012-04-07
    • 2013-02-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多