【问题标题】:How to read two elements from (XML) in App Engine Peoplecode如何从 App Engine Peoplecode 中的 (XML) 读取两个元素
【发布时间】:2020-02-24 18:05:53
【问题描述】:

无法读取两个元素?我可以阅读一个元素,但我不知道如何阅读两个元素。

&FieldL= &inXMLDoc.DocumentElement.GetElementsByTagName("ws:Name_Data");

For &a = 1 To &FieldL.Len
      &pNode = &FieldL[&a];
      &Name_Type = &pNode.GetElementsByTagName("ws:Name_Type");
      &aName_Type = &Name_Type [1].NodeValue;

   End-For;

这是 XML 文件。

<ws:Name_Data>
    <ws:Name_Type>Legal</ws:Name_Type>
    <ws:First_Name></ws:First_Name>
 </ws:Name_Data>
<ws:Name_Data>
      <ws:Name_Type>Preferred</ws:Name_Type>
      <ws:First_Name></ws:First_Name> 
</ws:Name_Data>

考虑解决方案

For &a = 1 To &FieldL.Len 
&pNode = &FieldL[1];
&pNode2 = &FieldL[2];

&Name_Type = &pNode.GetElementsByTagName("ws:Name_Type");
&aName_Type = &Name_Type [1].NodeValue;
&aName_Type2 = &pNode2.GetElementsByTagName("ws:Name_Type");
&aName_Type22 = &aName_Type2 [1].NodeValue; 
End-For;

【问题讨论】:

  • ``` For &a = 1 To &FieldL.Len &pNode = &FieldL[1]; &pNode2 = &FieldL[2]; &Name_Type = &pNode.GetElementsByTagName("ws:Name_Type"); &aName_Type = &Name_Type [1].NodeValue; &aName_Type2 = &pNode2.GetElementsByTagName("ws:Name_Type"); &aName_Type22 = &aName_Type2 [1].NodeValue;结束; ```

标签: peoplesoft peoplecode


【解决方案1】:
For &a = 1 To &FieldL.Len
    [...]
    &aName_Type = &Name_Type [1].NodeValue;
End-For;

如果 &a = 2,则 &aName_Type 中的值将被覆盖。确保 &aName_Type 是一个数组,并使用索引。

For &a = 1 To &FieldL.Len
    [...]
    &aName_Type[&a] = &Name_Type[1].NodeValue;
End-For;

【讨论】:

  • 您的解决方案需要为 xml 文件中的每个节点创建一个新变量。
  • 感谢您的 cmets。我让它工作,见上面的评论。此外,您需要考虑将 &aName_Type 值传递到 db 表中。谢谢——
  • @Viktor 如果您希望人们考虑某些事情,您可能希望将其包含在您的问题中。我的观点是,您的解决方案无法扩展。您必须为 XML 文件中的每个附加节点声明附加变量。
猜你喜欢
  • 2013-03-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-03-30
  • 2016-06-26
  • 1970-01-01
相关资源
最近更新 更多