Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
尝试读取XML值';使用xsltproc调用_Xml_Bash_Xslt - Fatal编程技术网

尝试读取XML值';使用xsltproc调用

尝试读取XML值';使用xsltproc调用,xml,bash,xslt,Xml,Bash,Xslt,我想从中阅读,但不知道如何 以下是文件: <MBusData> <SlaveInformation> <Id>5000619</Id> <Manufacturer>SBC</Manufacturer> <Version>19</Version> <Medium>Electricity</Medium>

我想从中阅读,但不知道如何

以下是文件:

<MBusData>

    <SlaveInformation>
        <Id>5000619</Id>
        <Manufacturer>SBC</Manufacturer>
        <Version>19</Version>
        <Medium>Electricity</Medium>
        <AccessNumber>254</AccessNumber>
        <Status>00</Status>
        <Signature>0000</Signature>
    </SlaveInformation>

    <DataRecord id="0">
        <Function>Instantaneous value</Function>
        <Unit>Energy (10 Wh)</Unit>
        <Value>686648</Value>
    </DataRecord>

    <DataRecord id="1">
        <Function>Instantaneous value</Function>
        <Unit>Energy (10 Wh)</Unit>
        <Value>686648</Value>
    </DataRecord>

<MBusData>

希望您能帮助…

首先,您的XML输入格式不正确:最后一个
标记需要是一个结束标记

其次,这是:

<xsl:template match="/">
        <xsl:for-each select="Datarecord">
最后,
数据记录
子项,而不是属性-因此您需要更改此项:

<xsl:value-of select="@Value"/>

THX,它可以工作,但如果我只想读取一个特定的数据记录,比如id=“1”,该怎么办?
<xsl:template match="/">
        <xsl:for-each select="Datarecord">
<xsl:template match="/">
        <xsl:for-each select="MBusData/DataRecord">
<xsl:value-of select="@Value"/>
<xsl:value-of select="Value"/>
<xsl:template match="/">
    <xsl:value-of select="MBusData/DataRecord[@id='1']/Value"/>
</xsl:template>