首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >读取XMLNodeList

读取XMLNodeList
EN

Stack Overflow用户
提问于 2016-05-04 19:23:36
回答 2查看 1.5K关注 0票数 0

我有一个奇怪的问题,我试图读取xml文档中的一个节点,但是我需要在基于内部文本的节点之后读取节点内部文本。

我有一个xml文档

代码语言:javascript
复制
<?xml version="1.0"?>
<DataFeedObject xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <TransactionID>a4b0ecc1-2d28-49f4-b9c7-caec861aa80d</TransactionID>
  <ApplicationID>b0926229-3209-4881-8cf3-cf4a88756a7f</ApplicationID>
  <TransactionDateTime>2016-04-25T21:03:49.5805295Z</TransactionDateTime>
  <DataItems>
    <DataItem>
      <Name>Account_Type</Name>
      <Value>Cash</Value>
    </DataItem>
    <DataItem>
      <Name>Account_Type_MarginDetails</Name>
    </DataItem>
    <DataItem>
      <Name>Agent_FirstName</Name>
      <Value>Jane</Value>
    </DataItem>
    <DataItem>
      <Name>Agent_IDNumber</Name>
      <Value>12547896</Value>
    </DataItem>
    <DataItem>
      <Name>Agent_LastName</Name>
      <Value>Doe</Value>
    </DataItem>
 </DataItems>
....

我可以循环遍历节点并找到节点Agent_LastName。

代码语言:javascript
复制
node.SelectSingleNode("Name").InnerText == "Agent_LastName"

但是我需要直接在这个节点后面的值标签中的文本。如何才能跳到下一个节点。

我可以在找到节点ant时设置一个标志,设置标志,然后在下一次迭代中获取内部文本,但这看起来很草率。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-05-04 19:35:36

使用Xpath

代码语言:javascript
复制
XmlDocument doc = new XmlDocument();
Doc.load(@"doc.xml");
XmlElement root = doc.DocumentElement;
var node = root.SelectSingleNode("/DataFeedObject/DataItems/DataItem/[Name = 'Agent_LastName']/Value");
票数 2
EN

Stack Overflow用户

发布于 2016-05-04 20:48:53

在玩了一会儿之后,我发现这个很管用。

代码语言:javascript
复制
   if (node.SelectSingleNode("Name").InnerText == "Agent_LastName")
    {
      string name = node.SelectSingleNode("Value").InnerText
    }

唯一的问题是,我只能通过迭代节点列表"DataItems/DataItem“中的所有节点来使其工作。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37036311

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档