【问题标题】:Progress Sax-reader进度萨克斯阅读器
【发布时间】:2018-05-30 10:32:40
【问题描述】:

我是进度萨克斯阅读器的新手。我正在阅读一个 XML,我正在尝试获取节点中某个属性的值。特别是 place-id 属性值。

<address ssid="32975" place-id="11537" quality="good">

我正在阅读这里的文档:https://documentation.progress.com/output/ua/OpenEdge_latest/index.html#page/dvxml%2Fretrieving-data-from-a-sax-attributes-object.html%23wwID0ECILM 对我来说这似乎表明我应该使用

GET-VALUE-BY-NAMESPACE-NAME( ) 

我在 CASE 中这样写过:,但无法让它工作,也找不到任何示例:

WHEN "address" THEN ASSIGN lv-place-id = charData.GET-VALUE-BY-NAMESPACE-NAME('address','place-id'). 

任何帮助表示赞赏。

【问题讨论】:

  • 您可能希望包含出现“无法使其正常工作”的任何实际错误消息。在您的代码中 sn -p "."应该是“:”
  • 谢谢@TomBascom

标签: sax openedge progress-4gl


【解决方案1】:

自从我使用 SAX 阅读器编写任何代码以来已经有一段时间了,但我的旧代码表明您可能希望在 StartElement() 过程中使用以下内容:

placeId = hAttributes:get-value-by-qname( "place-id" ).

根据你实际在做什么,你可能需要额外的代码来决定何时执行(我猜你的 CASE 语句适合这个目的)。

这个示例代码也可能有用:

https://documentation.progress.com/output/ua/OpenEdge_latest/index.html#page/dvxml%2Fwithout-namespace-processing.html%23wwID0EFNAO

【讨论】:

  • 嗨,汤姆,感谢您的回复。这就是我目前在我的程序中使用它的方式,我还将看一下示例。非常感谢。
猜你喜欢
  • 2023-04-05
  • 1970-01-01
  • 1970-01-01
  • 2011-03-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-03
  • 1970-01-01
相关资源
最近更新 更多