0

サーバーから XML 要求を読み取る必要があります。XML をローカルに保存すると、すべて正常に動作します。

脚本:

$(document).ready(function () {
    $.ajax({
        type: 'GET',
        url: 'http://localhost:1410/?SNO=56789&ASQL=plu%20mec%2010;',
        crossDomain: true,
        dataType: "jsonp",
        success: parseXml
    });
});

function parseXml(xml) {
    $(xml).find('dataset').each(function () {
        $("#output").append($(this).find('var[key="article.name"]').text() + "<br />");
    });
}

XML 出力:

<document name="screen">
  <section name="status">
    <dataset>
      <var key="organization.number">2919</var>
      <var key="organization.name">Testname</var>
      <var key="organization.businessdate">09.02.2013</var>
      <var key="situation.number">0</var>
      <var key="situation.name">Normalbetrieb</var>
      <var key="site.number">0</var>
      <var key="site.name">Normalbetrieb</var>
      <var key="pricelevel.number">1</var>
      <var key="pricelevel.name">Standardpreis</var>
      <var key="terminal.number">0</var>
      <var key="terminal.name">WebKasse</var>
      <var key="terminal.status">open</var>
      <var key="terminal.tapster">inactive</var>
      <var key="waiter.number">1</var>
      <var key="waiter.name">Kellner 1</var>
      <var key="table.number">5</var>
      <var key="table.balance">3.2</var>
      <var key="table.sales">3.2</var>
      <var key="profile.number">1</var>
      <var key="profile.name">Standard</var>
      <var key="execution.severity">I</var>
      <var key="execution.code">23600003</var>
      <var key="execution.message">Mec article list.</var>
    </dataset>
  </section>
  <section name="plu.list">
    <dataset>
      <var key="type">article</var>
      <var key="article.number">1</var>
      <var key="article.name">0,1 l Becher Sekt</var>
      <var key="article.displayname"/>
      <var key="article.price">3.7</var>
      <var key="article.plunumber">1</var>
      <action key="STANDARD">book plu 1;</action>
    </dataset>
    [...]

このコードを使用すると、ページが空白になり、次のエラーが表示されます。

SyntaxError: syntax error

<document name="screen"><section name="status"><dataset><var[...]

奇妙なことに、エラーに XML 出力が表示されます。

に変更するdata type:xml

エラーなし、空白ページ。

4

1 に答える 1

0

xml 応答を取得することを期待しているため、dataType: xml を使用する必要があります。異なる Web サーバーで異なる結果が得られる場合は、応答の MIME タイプを確認してください。

問題は間違った MIME タイプだと思います。

または、応答を文字列として取得し、jQuery で xml として解析することもできます

var xml = "<rss version='2.0'><channel><title>RSS Title</title></channel></rss>",
xmlDoc = $.parseXML( xml ),
$xml = $( xmlDoc ),
$title = $xml.find( "title" );
于 2013-02-10T14:23:53.620 に答える