여기 내 XML이 있습니다. C#에서 XDocument를 사용하고 있습니다. 나는 "recordSetCount"를 얻고 싶다.C에서 다중 네임 스페이스가있는 XDocument #
<?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. 내 코드에서 문제를 묻습니다. 나는 다중 namespcae를 사용하는 방법을 묻지 않았다. – Backtrack
안녕, 알았어, 이것에 대해 미안. – abatishchev
당신의 XML은 유효하지 않습니다. 혼란을 피하기 위해 더 나은 제목을주십시오. – abatishchev