我正在尝试在下面加载以下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元素来说它很好。
答案 0 :(得分:1)
{}
在属性中不是问题。这是{NAMESPACES}
占位符的问题,因为它只是位于预期属性名称的位置。
我建议您使用xmlns="{NAMESPACES}"
之类的语法。这应该超过大多数XML解析器(至少,那些不验证命名空间应该是URI的人)。
但是,您需要将此视为一种特殊情况。当您看到此字符串时,请将整个字符串替换为您的命名空间列表。如果您没有名称空间,那么您只需删除该字符串。否则,请将其替换为整个命名空间声明列表。