正在将XML文件读取到临时表-4gl

正在将XML文件读取到临时表-4gl,xml,progress-4gl,Xml,Progress 4gl,我正在使用OpenEdge 10.2A 我的XML文件只有一个表名记录,它有许多字段,但简化版本是: <Table_Name> <Field_Name_1>Value_1</Field_Name_1> <Field_Name_2>Value_2</Field_Name_2> </Table_Name> 结果显示0(零),这意味着它不会读取文件中的XML记录 如果我按以下方式更改XML文件: <My_X

我正在使用OpenEdge 10.2A

我的XML文件只有一个表名记录,它有许多字段,但简化版本是:

<Table_Name>
    <Field_Name_1>Value_1</Field_Name_1>
    <Field_Name_2>Value_2</Field_Name_2>
</Table_Name>
结果显示0(零),这意味着它不会读取文件中的XML记录

如果我按以下方式更改XML文件:

<My_XML_Records>
      <Table_Name>
          <Field_Name_1>Value_1</Field_Name_1>
          <Field_Name_2>Value_2</Field_Name_2>
      </Table_Name>
</My_XML_Records>

价值1
价值2
同一代码显示1(一个)


由于XML文件是由其他程序生成的,并且格式是固定的,有没有办法让代码正确读取XML文件?

这似乎是一个已知的错误,我找到了一个知识库条目:

解决方法:在XML中,需要使用数据集名称的外部节点。像这样:

<dataset_name>
    <Table_Name>
        <Field_Name_1>Value_1</Field_Name_1>
        <Field_Name_2>Value_2</Field_Name_2>
    </Table_Name>
</dataset_name>

我已经加载了数据集。

感谢您的快速回复,因为这是一个已知的错误,我必须读取xml文件并更改其结构保存并重新加载它。谢谢你的帮助。再次感谢你,你的版本是什么?你得到0条记录的代码对我有用。也许还有什么不对劲?很奇怪,我们的版本是OpenEdge 10.2A build 1185。我已经使用过程编辑器运行了这个过程,在不更改代码的情况下,添加我的_XML _Records标记可以得到所需的输出。你用的是哪个版本?11.7所以更新了很多。。。可能是固定的是更新了很多:)
<dataset_name>
    <Table_Name>
        <Field_Name_1>Value_1</Field_Name_1>
        <Field_Name_2>Value_2</Field_Name_2>
    </Table_Name>
</dataset_name>
DEFINE TEMP-TABLE Table_Name 
    FIELD Field_Name_1 AS CHAR
    FIELD Field_Name_2 AS CHAR
.

define dataset dataset_name for table_name.

dataset dataset_name:read-xml("File","C:\myFile.xml","empty",?,?,?).
DEF VAR i AS INT NO-UNDO.
FOR EACH Table_Name: 
    i=i + 1.
    DISP Field_Name_1 format "x(20)" 
         Field_Name_2 format "x(20)".
END.
DISP i.