C#解析XML问题

发布于 2024-12-08 05:14:25 字数 2227 浏览 4 评论 0原文

我正在使用此代码尝试读取下面的 XML,但它没有读取 foreach 循环中的任何内容并跳过它。谢谢。

C#

 XElement _xml;
 _xml = XElement.Parse(PostResult);
 foreach (XElement value in _xml.Elements("ServiceDelivery")
                                .Element("StopMonitoringDelivery")
                                .Elements("MonitoredStopVisit"))
          {
             StopFeed _item = new StopFeed();
             _item.A= value.Element("PublishedLineName").Value;
             _item.B = value.Element("DirectionName").Value;

              listBox1.Items.Add(_item);
           }

XML:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>    
<Siri version="1.0" xmlns="http://www.siri.org.uk/">
<ServiceDelivery>
    <ResponseTimestamp>2011-10-04T11:45:36.415+01:00</ResponseTimestamp>
    <ResponseMessageIdentifier>1d8bc237-2df6-43e6-af56-c750d3089eb6</ResponseMessageIdentifier>
    <StopMonitoringDelivery version="1.0">
        <ResponseTimestamp>2011-10-04T11:45:36.415+01:00</ResponseTimestamp>
        <RequestMessageRef>1</RequestMessageRef>
        <MonitoredStopVisit>
            <RecordedAtTime>2011-10-04T11:45:36.412+01:00</RecordedAtTime>
            <MonitoringRef>020035057</MonitoringRef>
            <MonitoredVehicleJourney>
                <FramedVehicleJourneyRef>
                    <DataFrameRef>-</DataFrameRef>
                    <DatedVehicleJourneyRef>-</DatedVehicleJourneyRef>
                </FramedVehicleJourneyRef>
                <VehicleMode>bus</VehicleMode>
                <PublishedLineName>28</PublishedLineName>
                <DirectionName>blahblah</DirectionName>
                <OperatorRef>153</OperatorRef>
                <MonitoredCall>
                    <AimedDepartureTime>2011-10- 04T11:48:00.000+01:00</AimedDepartureTime>
                </MonitoredCall>
            </MonitoredVehicleJourney>
        </MonitoredStopVisit>
    </StopMonitoringDelivery>
</ServiceDelivery>
</Siri>

I am using this code to try and read this XML below, but it is not read anything in the foreach loop and skipping that. Thanks.

C#

 XElement _xml;
 _xml = XElement.Parse(PostResult);
 foreach (XElement value in _xml.Elements("ServiceDelivery")
                                .Element("StopMonitoringDelivery")
                                .Elements("MonitoredStopVisit"))
          {
             StopFeed _item = new StopFeed();
             _item.A= value.Element("PublishedLineName").Value;
             _item.B = value.Element("DirectionName").Value;

              listBox1.Items.Add(_item);
           }

XML:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>    
<Siri version="1.0" xmlns="http://www.siri.org.uk/">
<ServiceDelivery>
    <ResponseTimestamp>2011-10-04T11:45:36.415+01:00</ResponseTimestamp>
    <ResponseMessageIdentifier>1d8bc237-2df6-43e6-af56-c750d3089eb6</ResponseMessageIdentifier>
    <StopMonitoringDelivery version="1.0">
        <ResponseTimestamp>2011-10-04T11:45:36.415+01:00</ResponseTimestamp>
        <RequestMessageRef>1</RequestMessageRef>
        <MonitoredStopVisit>
            <RecordedAtTime>2011-10-04T11:45:36.412+01:00</RecordedAtTime>
            <MonitoringRef>020035057</MonitoringRef>
            <MonitoredVehicleJourney>
                <FramedVehicleJourneyRef>
                    <DataFrameRef>-</DataFrameRef>
                    <DatedVehicleJourneyRef>-</DatedVehicleJourneyRef>
                </FramedVehicleJourneyRef>
                <VehicleMode>bus</VehicleMode>
                <PublishedLineName>28</PublishedLineName>
                <DirectionName>blahblah</DirectionName>
                <OperatorRef>153</OperatorRef>
                <MonitoredCall>
                    <AimedDepartureTime>2011-10- 04T11:48:00.000+01:00</AimedDepartureTime>
                </MonitoredCall>
            </MonitoredVehicleJourney>
        </MonitoredStopVisit>
    </StopMonitoringDelivery>
</ServiceDelivery>
</Siri>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

つ可否回来 2024-12-15 05:14:25

我认为您忘记了名称空间。看看 XNamespace

XNamespace xn= "http://www.siri.org.uk/";

foreach (XElement value in _xml.Elements(xn+ "ServiceDelivery")
                            .Element(xn+ "StopMonitoringDelivery")
                            .Elements(xn+ "MonitoredStopVisit"))
{
      ....
}

I think you forgot the namespace. Have a look at XNamespace

XNamespace xn= "http://www.siri.org.uk/";

foreach (XElement value in _xml.Elements(xn+ "ServiceDelivery")
                            .Element(xn+ "StopMonitoringDelivery")
                            .Elements(xn+ "MonitoredStopVisit"))
{
      ....
}
清君侧 2024-12-15 05:14:25

根元素是 Siri。

使用:

XElement value in _xml.Root.Elements("ServiceDelivery")
                            .Element("StopMonitoringDelivery")
                            .Elements("MonitoredStopVisit"))

XElement value in _xml.Element("Siri")
                            .Elements("ServiceDelivery")
                            .Element("StopMonitoringDelivery")
                            .Elements("MonitoredStopVisit"))

/B

The root element is Siri.

Either use:

XElement value in _xml.Root.Elements("ServiceDelivery")
                            .Element("StopMonitoringDelivery")
                            .Elements("MonitoredStopVisit"))

or

XElement value in _xml.Element("Siri")
                            .Elements("ServiceDelivery")
                            .Element("StopMonitoringDelivery")
                            .Elements("MonitoredStopVisit"))

/B

土豪我们做朋友吧 2024-12-15 05:14:25

尝试 _xml.Elements("//ServiceDelivery")_xml.Elements("Siri/ServiceDelivery"),您忘记了您的 ServiceDelivery 节点是 Siri 节点的子节点。

或者 XML 命名空间可能是问题所在,请检查此页面并了解如何<可以使用code>XmlNamespaceManager。

try _xml.Elements("//ServiceDelivery") or _xml.Elements("Siri/ServiceDelivery"), you forgot that your ServiceDelivery node is child of Siri node.

Or maybe the XML namespace is the problem, check this page and see how XmlNamespaceManager can be used.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文