3

いくつかのHTML/XMLマークアップをjavascript変数に保存したいと思います。問題は、テキストが比較的大きいことです。たとえば、次のXML部分をjavascript変数に格納するにはどうすればよいですか?

    <QuestionForm xmlns="[the QuestionForm schema URL]">
  <Overview>
    <Title>Game 01523, "X" to play</Title>
    <Text>
      You are helping to decide the next move in a game of Tic-Tac-Toe.  The board looks like this:
    </Text>
    <Binary>
      <MimeType>
        <Type>image</Type>
        <SubType>gif</SubType>
      </MimeType>
      <DataURL>http://tictactoe.amazon.com/game/01523/board.gif</DataURL>
      <AltText>The game board, with "X" to move.</AltText>
    </Binary>
    <Text>
      Player "X" has the next move.
    </Text>
  </Overview>
  <Question>
    <QuestionIdentifier>nextmove</QuestionIdentifier>
    <DisplayName>The Next Move</DisplayName>
    <IsRequired>true</IsRequired>
    <QuestionContent>
      <Text>
        What are the coordinates of the best move for player "X" in this game?
      </Text>
    </QuestionContent>
    <AnswerSpecification>
      <FreeTextAnswer>
        <Constraints>
          <Length minLength="2" maxLength="2" />
        </Constraints>
        <DefaultText>C1</DefaultText>
      </FreeTextAnswer>
    </AnswerSpecification>
  </Question>
  <Question>
    <QuestionIdentifier>likelytowin</QuestionIdentifier>
    <DisplayName>The Next Move</DisplayName>
    <IsRequired>true</IsRequired>
    <QuestionContent>
      <Text>
        How likely is it that player "X" will win this game?
      </Text>
    </QuestionContent>
    <AnswerSpecification>
      <SelectionAnswer>
        <StyleSuggestion>radiobutton</StyleSuggestion>
        <Selections>
          <Selection>
            <SelectionIdentifier>notlikely</SelectionIdentifier>
            <Text>Not likely</Text>
          </Selection>
          <Selection>
            <SelectionIdentifier>unsure</SelectionIdentifier>
            <Text>It could go either way</Text>
          </Selection>
          <Selection>
            <SelectionIdentifier>likely</SelectionIdentifier>
            <Text>Likely</Text>
          </Selection>
        </Selections>
      </SelectionAnswer>
    </AnswerSpecification>
  </Question>
</QuestionForm>
4

4 に答える 4

9

あなたの質問は、その正確な文字列を取得する方法であり、Web サービスや Ajax 呼び出しなどから取得したものではないと思います。これは多くの理由でかなり悪い考えですが、質問に答えるには...


JavaScript でこれを行う良い方法はありません。一部のブラウザーは、行末に a を配置することで行の継続をサポート\しているため、次のようにします。

var xml = '<QuestionForm xmlns="[the QuestionForm schema URL]">\
  <Overview>\
    <Title>Game 01523, "X" to play</Title>\
    ...';

しかし、これは非標準であり、実際には JS 仕様と直接矛盾しています。

'LineTerminator' 文字は、バックスラッシュが前にある場合でも、文字列リテラルに表示できません。

これを行う唯一の本当に信頼できる方法は、手動で文字列を連結することです。

var xml = '<QuestionForm xmlns="[the QuestionForm schema URL]">' + "\n" +
'      <Overview>' + "\n" +
'        <Title>Game 01523, "X" to play</Title>' + "\n" +
'        ...';

次のように、これを少しきれいにすることができます。

var xml = ['<QuestionForm xmlns="[the QuestionForm schema URL]">',
'      <Overview>',
'        <Title>Game 01523, "X" to play</Title>'
'        ...'].join("\n");

しかし、それはまだ悪いです。

また、これらすべてのアプローチでは、一重引用符をエスケープする必要があります。つまり'\'. 一見、あなたの XML スニペットには何も表示されませんでしたが、これは良いことです。

于 2011-02-26T08:32:20.617 に答える
0

JSON、mateyを使用することをお勧めします。冗長ではありません。そして、javascriptにはそれをうまく処理するためのメソッドがあります。クラスの後半でXMLを操作する必要がある場合は、単純なアダプターを作成できます。

于 2011-02-26T06:51:01.843 に答える
-9
var string = (<r><![CDATA[

   The text string goes here.  Since this is a XML CDATA section,
   stuff like <> work fine too, even if definitely invalid XML. 

]]></r>).toString();
于 2011-02-26T06:54:31.980 に答える