【发布时间】:2014-12-16 12:52:26
【问题描述】:
这是我的 xml。我在 C# 中使用 XDocument。我想得到“recordSetCount”。
<?xml version="1.0" encoding="utf-8"?>
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<ShowPositionOpening xmlns="http://data.usajobs.gov">
<ApplicationArea xmlns="http://www.openapplications.org/oagis/9">
<CreationDateTime>2014-12-11T04:05:41</CreationDateTime>
</ApplicationArea>
<DataArea xmlns="http://www.hr-xml.org/3">
<Show recordSetCount="6" recordSetTotal="6" recordSetCompleteIndicator="false" recordSetReferenceId="1" xmlns="http://www.openapplications.org/oagis/9">
<OriginalApplicationArea>
<CreationDateTime>2014-12-11T04:05:41</CreationDateTime>
</OriginalApplicationArea>
</Show>
我已经尝试过如下
var namespaceManager = new XmlNamespaceManager(new NameTable());
namespaceManager.AddNamespace("s", "http://schemas.xmlsoap.org/soap/envelope/");
var jobCount = x.XPathSelectElement("/s:Envelope/s:Body/ShowPositionOpening/DataArea/Show/@recordSetCount", namespaceManager).Value;
但它不起作用。也尝试如下
XNamespace xmlns = "http://www.openapplications.org/oagis/9";
XNamespace xmlns1 = "http://data.usajobs.gov";
XNamespace x1 = "http://www.hr-xml.org/3";
var jobCount = x.Element("ShowPositionOpening")
.Element(xmlns1 + "DataArea")
.Element(x1 + "Show")
.Attribute("recordSetTotal");
但它没有用。什么地方出了错。谁能帮帮我?
【问题讨论】:
-
嗨@abatishchev。我在我的代码中询问问题。我没有问如何使用多个namespae
-
嗨,好的,我明白了,很抱歉。
-
您的 xml 无效。请给您的问题一个更好的标题以避免进一步混淆。
-
@abatishchev。当然 。谢谢
标签: c# xml linq-to-xml xml-namespaces