加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 使用XMLTextReader,我怎么知道我在哪个元素?

发布时间:2020-12-15 17:21:58 所属栏目:百科 来源:网络整理
导读:这就是我的代码: case "Creator": br.Read(); br.MoveToContent(); // gives the content of the role tbComposer.Text = br.Value; br.Read(); br.MoveToContent(); // gives the content of the role tbConductor.Text = br.Value; br.Read(); br.MoveToC
这就是我的代码:

case "Creator":
    br.Read();
    br.MoveToContent();  // gives the content of the role
    tbComposer.Text = br.Value;
    br.Read();
    br.MoveToContent();  // gives the content of the role
    tbConductor.Text = br.Value;
    br.Read();
    br.MoveToContent();  // gives the content of the role
    tbOrchestra.Text = br.Value;
    break;

这是工作代码:(感谢大家的意见……如果没有你,就不可能做到!)Spokane-Dude

case "Creator":
                    br.MoveToFirstAttribute();
                    if (br.Value == "Composer") {
                        br.Read();
                        tbComposer.Text = br.Value;
                    }
                    if (br.Value == "Conductor") {
                        br.Read();
                        tbConductor.Text = br.Value;
                    }
                    if (br.Value == "Orchestra") {
                        br.Read();
                        tbOrchestra.Text = br.Value;
                    }
                    break;

这就是我的XML的样子:

<ItemLookupResponse>
    <OperationRequest/>
    <Items>
        <Request/>
        <Item>
            <ItemAttributes>
                <Binding>Audio CD</Binding>
                <CatalogNumberList>
                    <CatalogNumberListElement>43850</CatalogNumberListElement>
                </CatalogNumberList>
                <Creator Role="Composer">Gioachino Rossini</Creator>
                <Creator Role="Conductor">Riccardo Chailly</Creator>
                <Creator Role="Orchestra">National Philharmonic Orchestra</Creator>
            </ItemAttributes>
        </Item>
    </Items>
</ItemLookupResponse>

我需要知道我是否正在阅读元素Creator Role =“Composer”或Creator Role =“Conductor”等

那么,使用XMLTextReader,我如何确定元素文本是什么?

解决方法

这个样本怎么样?我希望它对你有用

static void Main(string[] args)
    {

        string xmlStr = "<?xml version="1.0" encoding="utf-8" ?><Creators><Creator Role="Composer">Gioachino Rossini</Creator><Creator Role="Conductor">Riccardo Chailly</Creator><Creator Role="Orchestra">National Philharmonic Orchestra</Creator></Creators>";
        using (XmlReader xmlReader = XmlTextReader.Create(new StringReader(xmlStr)))
        {
            xmlReader.MoveToContent();
            xmlReader.ReadStartElement("Creators","");
            SomeMethod("Composer",xmlReader);
            SomeMethod("Conductor",xmlReader);
            SomeMethod("Orchestra",xmlReader);
        }

        Console.WriteLine("........");
        Console.Read();
    }

    static void SomeMethod(string role,XmlReader xmlReader)
    {
        xmlReader.MoveToAttribute("Role");

        switch (role)
        {
            case "Composer":
                {
                    xmlReader.MoveToContent();
                    Console.WriteLine(string.Format("Composer:{0}",xmlReader.ReadElementContentAsString()));

                } break;
            case "Conductor":
                {
                    xmlReader.MoveToContent();
                    Console.WriteLine(string.Format("Conductor:{0}",xmlReader.ReadElementContentAsString()));

                } break;
            case "Orchestra":
                {
                    xmlReader.MoveToContent();
                    Console.WriteLine(string.Format("Orchestra:{0}",xmlReader.ReadElementContentAsString()));

                } break;

            default: break;
        }
    }

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读