【发布时间】:2014-02-23 01:48:18
【问题描述】:
我的XML文件是这样的
<A_VERY_VERY_LONG_TITLE xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://tempuri.org/">
<DATA_LIST>
<DATA_LIST>
<ELEMENT_NO1 xmlns="">ABCDEFG_1</ELEMENT_NO1>
<ELEMENT_NO2 xmlns="">1234567_1</ELEMENT_NO2>
<ELEMENT_NO3 xmlns=""/>
</DATA_LIST>
<DATA_LIST>
<ELEMENT_NO1 xmlns="">ABCDEFG_2</ELEMENT_NO1>
<ELEMENT_NO2 xmlns="">1234567_2</ELEMENT_NO2>
<ELEMENT_NO3 xmlns="">A1B2C3D_2</ELEMENT_NO3>
</DATA_LIST>
<DATA_LIST>
<ELEMENT_NO1 xmlns="">ABCDEFG_3</ELEMENT_NO1>
<ELEMENT_NO2 xmlns="">1234567_3</ELEMENT_NO2>
<ELEMENT_NO3 xmlns="">A1B2C3D_3</ELEMENT_NO3>
</DATA_LIST>
</DATA_LIST>
<SOMETHING>SOME-VALUE</SOMETHING>
<SOMETHING_ELSE>SOME-OTHER-VALUE</SOMETHING_ELSE>
</A_VERY_VERY_LONG_TITLE>
而我的代码示例是
DEFINE VARIABLE lOK AS LOGICAL NO-UNDO.
DEFINE TEMP-TABLE DATA_LIST NO-UNDO
FIELD ELEMENT_NO1 AS CHARACTER
FIELD ELEMENT_NO2 AS CHARACTER
FIELD ELEMENT_NO3 AS CHARACTER .
DEFINE DATASET DATA FOR DATA_LIST.
lOk = DATASET DATA:READ-XML("file", /* SourceType */
"C:\xmlFile.xml", /* File */
"append", /* ReadMode */
?, /* SchemaLocation */
?, /* OverrideDefaultMapping */
?, /* FieldTypeMapping */
?). /* VerifySchemaMode */
FOR EACH DATA_LIST:
DISPLAY DATA_LIST.ELEMENT_NO1 FORMAT "x(20)"
DATA_LIST.ELEMENT_NO2 FORMAT "x(20)"
DATA_LIST.ELEMENT_NO3 FORMAT "x(20)"
WITH WIDTH 120 .
END.
我可以成功访问 DATA_LIST 元素。但我无法访问数据 "SOMETHING" 和 "SOMETHING_ELSE" 。我也尝试为此值定义一个临时表,但它无法工作。 (我的屏幕是空的。)
感谢您的帮助。
【问题讨论】:
-
XML 总是需要一个根元素。这是 XML 规范的一部分。因此,您需要一个包含所有内容的标签。如果不存在,则 xml 文档格式错误。如果存在:发布整个文档!
-
感谢您的帮助。 “A_VERY_VERY_LONG_TITLE”不是包含所有内容吗? (我已经更正了,它现在有一个关闭标签。)
-
这看起来更正确!
标签: xml progress-4gl openedge