首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SelectNodes返回空

SelectNodes返回空
EN

Stack Overflow用户
提问于 2015-10-14 22:52:33
回答 1查看 2.6K关注 0票数 0

我使用SelectNodes来读取xml节点,但是当我尝试GetElementsByTagName时,我得到了null,我得到了这些值。

代码语言:javascript
复制
XmlDocument xml = new XmlDocument();
xml.Load(DownloadFile);
XmlNodeList xmlnode;
xmlnode = xml.GetElementsByTagName("CruisePriceSummaryResponse");

for (int i = 0; i < xmlnode.Count; i++)
{
    XmlNodeList rooms = xml .SelectNodes("RoomSize/CruisePriceSummaryRoomSize");
    for(int j = 0; j < rooms.Count; j++)
    {
        string bestFare = rooms[j].SelectSingleNode("BestFare/TotalPrice").InnerText;
        string fullFare = rooms[j].SelectSingleNode("FullFare/TotalPrice").InnerText;

        // do whatever you need
    }
}

我想读TotalPriceBestFareFullFare,每个孩子有两个内在的BestFareFullFareand,我需要读每个TotalPrice

这是我的XML

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?>
<ArrayOfCruisePriceSummaryResponse
    xmlns:i="http://www.w3.org/2001/XMLSchema-instance"
    xmlns="http://schemas.datacontract.org/2004/07/OpenseasAPI.ServiceModel">

        <CruisePriceSummaryResponse>
            <AvailablePromos
                xmlns:d3p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
                <d3p1:string>FLA</d3p1:string>
                <d3p1:string>FLB</d3p1:string>
            </AvailablePromos>
            <Brand>PA</Brand>
            <CruiseCategory i:nil="true"/>
            <RoomSize>
                <CruisePriceSummaryRoomSize>
                    <BestFare>
                        <TotalPrice>2798.0000000</TotalPrice>
                    </BestFare>
                    <FullFare>
                        <TotalPrice>3198.000000</TotalPrice>
                    </FullFare>
                    <PaxCount>2</PaxCount>
                </CruisePriceSummaryRoomSize>
                <CruisePriceSummaryRoomSize>
                    <BestFare>
                        <TotalPrice>2796.000000</TotalPrice>
                    </BestFare>
                    <FullFare>
                        <TotalPrice>4196.000000</TotalPrice>
                    </FullFare>
                    <PaxCount>4</PaxCount>
                </CruisePriceSummaryRoomSize>
            </RoomSize>
            <ShipCode>PD</ShipCode>
        </CruisePriceSummaryResponse>
        <CruisePriceSummaryResponse>
            <AvailablePromos
                xmlns:d3p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
                <d3p1:string>FLA</d3p1:string>
                <d3p1:string>LF1</d3p1:string>
            </AvailablePromos>
            <Brand>PA</Brand>
            <RoomSize>
                <CruisePriceSummaryRoomSize>
                    <BestFare>
                        <TotalPrice>1298.000000</TotalPrice>
                    </BestFare>
                    <FullFare>
                        <TotalPrice>3498.000000</TotalPrice>
                    </FullFare>
                    <PaxCount>2</PaxCount>
                </CruisePriceSummaryRoomSize>
                <CruisePriceSummaryRoomSize>
                    <BestFare>
                        <TotalPrice>1796.000000</TotalPrice>
                    </BestFare>
                    <FullFare>
                        <TotalPrice>5396.000000</TotalPrice>
                    </FullFare>
                    <PaxCount>4</PaxCount>
                </CruisePriceSummaryRoomSize>
            </RoomSize>
            <ShipCode>PJ</ShipCode>
        </CruisePriceSummaryResponse>
    </ArrayOfCruisePriceSummaryResponse>

我会感谢你的帮助。我不想使用linq,因为这是一个使用VS2008的SSIS项目,它不支持linq。

提前感谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-10-14 22:58:33

您从不加载或读取源XML。你的代码

代码语言:javascript
复制
XmlDocument xml = new XmlDocument();
XmlNodeList xmlnode;
xmlnode = xml.GetElementsByTagName("CruisePriceSummaryResponse");

创建一个空xml文档,然后尝试从空XML获取元素。

您需要调用XmlDocument.LoadXmlDocument.LoadXML从文件或字符串中读取xml。

代码语言:javascript
复制
XmlDocument xml = new XmlDocument();
xml.Load("pathtosomefile.xml");
XmlNodeList xmlnode = xml.GetElementsByTagName("CruisePriceSummaryResponse");
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33137009

复制
相关文章

相似问题

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