Заворачивать тело в мыльный шаблон? - PullRequest
0 голосов
/ 14 октября 2011

Я пытаюсь загрузить следующий xml ниже, а затем заменить токены, заключенные в {}, на соответствующие значения, но я заметил, что он жалуется, что {} является недопустимым символом. Должен ли я просто загрузить его как обычный текстовый файл? или есть более простой способ сделать это?

<?xml version="1.0" encoding="utf-8"?>
<soapenv:Envelope {NAMESPACES}>
  <soapenv:Header>
      <From>
        <SystemId>{FROM_SYSTEM_ID}</SystemId>
        <Credential>
          <userName>{USERNAME}</userName>
          <password>{PASSWORD}</password>
        </Credential>
        <SourceId />
      </From>
      <To>
        <Address>{ADDRESS}</Address>
      </To>
      <timeStamp>{TIME_STAMP}</timeStamp>
      <echoToken>{ECHO_TOKEN}</echoToken>
      <action>{ACTION}</action>
      <transactionId>{TRANSACTION_ID}</transactionId>
  </soapenv:Header>
  <soapenv:Body>
    {BODY}
  </soapenv:Body>
</soapenv:Envelope>

Я полагаю, что {} недопустимо только для атрибутов, но хорошо для внутреннего xml элементов.

1 Ответ

1 голос
/ 14 октября 2011

{} не является проблемой в атрибутах.Это проблема для вашего {NAMESPACES} заполнителя, потому что он просто сидит там, где ожидалось имя атрибута.

Я предлагаю вам использовать синтаксис, такой как xmlns="{NAMESPACES}".Это должно пройти большинство синтаксических анализаторов XML (по крайней мере, тех, кто не проверяет, что пространство имен должно быть URI).

Однако вам придется рассматривать это как особый случай.Когда вы увидите эту строку, замените всю строку своим списком пространств имен.Если у вас нет пространств имен, вы просто удалите строку.В противном случае замените его на весь список объявлений пространства имен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...