我正在尝试将下面的XML反序列化为C#类:

<StaffingOrder xmlns="NameSpaceName">
  <ReportingRequirements>
    <ns0:ManagerName>__MANAGER_NAME</ns0:ManagerName>
    <ns0:SupervisorName>__SUPERVISOR_NAME</ns0:SupervisorName>
  </ReportingRequirements>
  <Comments>Comment</Comments>
</StaffingOrder>


但是在反序列化时,我得到以下错误:

Error: There was an error processing 'Test.xml'.
  - 'ns0' is an undeclared prefix


我如何反序列化ns0标签。

最佳答案

XML文档的名称空间格式不正确,因为前缀ns0没有绑定到任何名称空间。这就是为什么无法对其进行分析的原因。

可以将其绑定到您选择的名称空间,并在其使用范围内的任何标记中使用xmlns:ns0属性,例如:

<StaffingOrder
    xmlns="NameSpaceName"
    xmlns:ns0="http://www.example.com/some/namespace">
  <ReportingRequirements>
    <ns0:ManagerName>__MANAGER_NAME</ns0:ManagerName>
    <ns0:SupervisorName>__SUPERVISOR_NAME</ns0:SupervisorName>
  </ReportingRequirements>
  <Comments>Comment</Comments>
</StaffingOrder>

关于c# - ns0是反序列化XML时未声明的前缀,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38496088/

10-11 02:13