0

私はURLとポートを持っています... mysite.com:8000

HTTP でアプローチすると、XML が返されます。XML を<title>ツリーの下で抽出して変換する必要があります。<source mount="/live">

他にもノードはありますが、階層はこんな感じ

<icestats>
   <source mount="/live">
      <title>Michael Jackson - Beat IT - Thriller</title>
   </source>
</icestats>

<title>Pascalを使用して値を抽出し、最初のハイフンを使用して展開する必要があります。

したがって、XML に「Michael Jackson - Beat IT - Thriller」という値が含まれている場合は、出力する必要があります...

アーティスト=マイケル・ジャクソン 曲=Beat IT - Thriller

これらは、スクリプトの別の部分に含める変数として抽出する必要があります。

ここでまだ試していないことをお詫びします。私はコーディングを学んでいる駅のプログラマーです。誰かが私に有利なスタートを切ることができれば、私はおそらくそれを肉付けすることができます.

Pascal/Delphi に基づいており、SAM Broadcaster で実行される PAL でこれをコンパイルしています。

4

2 に答える 2

0

最終的にこれを非常に簡単に解決できました。最初に、カスタム XSLT ファイルをサーバー (この場合は Icecast サーバー) に追加して、未加工の XML 出力を調整しました。それを Web フォルダにドロップするのは簡単なことですが、そこにアクセスする必要があります。

以下は、必要な 3 つのタグを抽出するために使用したものです。これは完全な例であり、上記の単純化されたものではないことに注意してください。

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
    <xsl:output method="text"/>
    <xsl:template match="/">
        <xsl:value-of select="/icestats/source[@mount='/live']/title" />
      <xsl:text>
</xsl:text>
      <xsl:value-of select="/icestats/source[@mount='/live']/genre" />
      <xsl:text>
</xsl:text>
        <xsl:value-of select="/icestats/source[@mount='/live']/server_name" />
    </xsl:template>
</xsl:stylesheet>

<!-- Do not change the formatting or spacing in this document. It will affect the output and could break processes down the chain -->

次に、デルファイ (PAL スクリプト、SAM ブロードキャスターのデルファイ ベースのシェル)WebtoFileを使用して、ローカル テキスト ファイルを作成し、TStringList必要に応じてテキスト ファイルを変数に格納して解析しました。

「 - 」による爆破はposdeleteコマンドの組み合わせで実現しました。

完全な作業スクリプトには多くのエラー処理が含まれており、ここに貼り付けるには大きすぎます。それと議論(さらなる文脈)はここで見つけることができます

于 2013-07-29T09:31:08.173 に答える