【发布时间】:2011-08-24 11:04:00
【问题描述】:
我对这些东西很陌生,很难弄清楚如何正确访问我的数据。我所拥有的是这种形式的 XML 树:
<bpm:ResponseData
xmlns:bpm="http://rest.bpm.ibm.com/v1/data">
<status>200</status>
<data
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:srch="http://rest.bpm.ibm.com/v1/data/search"
xsi:type="srch:SearchDetails">
<data>
<item key="assignedToUser"/>
<item key="bpdName">
<value xmlns:ns5="http://www.w3.org/2001/XMLSchema" xsi:type="ns5:string">
Some process name
</value>
</item>
<item key="instanceDueDate">
<value xmlns:ns5="http://www.w3.org/2001/XMLSchema" xsi:type="ns5:string">
2011-09-06T12:35:48Z
</value>
</item>
<item key="taskId">
<value xmlns:ns5="http://www.w3.org/2001/XMLSchema" xsi:type="ns5:decimal">
218
</value>
</item>
<item key="taskSubject">
<value xmlns:ns5="http://www.w3.org/2001/XMLSchema" xsi:type="ns5:string">
Task: Some process related task
</value>
</item>
</data>
<data>
<item key="bpdName">
<value xmlns:ns5="http://www.w3.org/2001/XMLSchema" xsi:type="ns5:string">
Another process name
</value>
</item>
<item key="instanceStatus">
<value xmlns:ns5="http://www.w3.org/2001/XMLSchema" xsi:type="ns5:string">
Active
</value>
</item>
<item key="taskId">
<value xmlns:ns5="http://www.w3.org/2001/XMLSchema" xsi:type="ns5:decimal">
253
</value>
</item>
<item key="taskSubject">
<value xmlns:ns5="http://www.w3.org/2001/XMLSchema" xsi:type="ns5:string">
Task: Another process related task
</value>
</item>
</data>
</data>
</bpm:ResponseData>
我需要从这些数据中准确提取两件事:taskSubject 和 taskId。最好以允许我迭代它们的方式。涉及 new{subject, id} 的东西会很好。
我不太确定如何处理事情任务...
有
var items = from feed in XMLDocument.Descendants("data").Descendants("data") select feed;
我得到了两个数据项。有什么方法可以进一步挖掘它们,返回具有特定“键”属性的后代的值?
问候, 迈克尔
编辑:
我认为这会起作用:
var items = from feed in XMLDocument.Descendants("data").Descendants("data") select
new{
subject = from subjects in feed.Elements() where (subjects.Attribute("key").Value=="taskSubject") select subjects.Value,
id = from subjects in feed.Elements() where (subjects.Attribute("key").Value == "taskId") select subjects.Value
};
但这似乎很“肮脏”...
【问题讨论】:
-
这有帮助吗? (让您查询属性值)stackoverflow.com/questions/606817/…
标签: c# .net xml linq linq-to-xml