用肥皂模板包裹身体?

时间:2011-10-14 13:36:18

标签: .net xml soap

我正在尝试在下面加载以下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 个答案:

答案 0 :(得分:1)

{}在属性中不是问题。这是{NAMESPACES}占位符的问题,因为它只是位于预期属性名称的位置。

我建议您使用xmlns="{NAMESPACES}"之类的语法。这应该超过大多数XML解析器(至少,那些不验证命名空间应该是URI的人)。

但是,您需要将此视为一种特殊情况。当您看到此字符串时,请将整个字符串替换为您的命名空间列表。如果您没有名称空间,那么您只需删除该字符串。否则,请将其替换为整个命名空间声明列表。