0

更新
新しいコードDOM Exception 8でエラーが発生しました。

if($('#searchClientName').val() != '')
{
   $($.parseXML(requestXML)).find('Parameters').get(0).appendChild('<ClientName>'+$('#searchClientName').val()+'</ClientName>');
}

これらのオプションも使用してみました:

  1. $('<ClientName>'+$('#searchClientName').val()+'</ClientName>').appendTo($($.parseXML(requestXML)).find('RequestParameters').get(0));

  2. エラーは発生しませんが、XML は変更されません。

    xmlDoc = document.implementation.createDocument("", "", null); clientNameElement = xmlDoc.createElement('ClientName'); clientNameValue = xmlDoc.createTextNode($('#searchClientName').val()); clientNameElement.appendChild(clientNameValue); $($.parseXML(requestXML)).find('RequestParameters').get(0).appendChild(clientNameElement);

古いコード:
jQuery で XML 操作を行うのに苦労しています。コメント部分の実装方法がわかりません:

var requestXML = "<Request><Type>Search</Type><Parameters></Parameters></Request>",
    requestDoc = $.parseXML(requestXML),
    reqXML = $( requestDoc ),
    $parameters = $reqXML.find('Parameters');

    if($('#clientNameTextField').val() != '')
    {
        //Add <ClientName> name text field value</ClientName><ParameterType>ClientName</ParameterType>
    }
    else if ($('#idTextField').val() != '')
    {
        //Add <ClientId> id text field value</ClientId><ParameterType>ClientId</ParameterType>
    }

注: キャメル ケーシングは要素名にとって重要です

4

1 に答える 1

0

これは機能します。

ノード名のキャメルケースを維持するようにコードを更新しました。

var requestXML = "<Request><Type>Search</Type><Parameters></Parameters></Request>",
    $reqXML = $( jQuery.parseXML(requestXML) ),
    $parameters = $reqXML.find('Parameters');

    if($('#clientNameTextField').val() != '')
    {
        //Add <ClientName> name text field value</ClientName><ParameterType>ClientName</ParameterType>
        $parameters.append(jQuery.parseXML('<ClientName>Apple</ClientName>').documentElement);
        $parameters.append(jQuery.parseXML('<ParameterType>P999</ParameterType>').documentElement);
    }
    else if ($('#idTextField').val() != '')
    {
        //Add <ClientId> id text field value</ClientId><ParameterType>ClientId</ParameterType>
        $parameters.append(jQuery.parseXML('<ClientId>C111</ClientId>').documentElement);
        $parameters.append(jQuery.parseXML('<ParameterType>P999</ParameterType>').documentElement);
    }

    var xmlString = (new XMLSerializer()).serializeToString($reqXML.get(0));
    console.log(xmlString);
于 2013-08-08T14:17:53.980 に答える