비슷한 질문이 있지만 제 경우에는 솔루션이 작동하지 않은 것 같습니다. XDocument, XPath 및 네임 스페이스의 이상 함
작업중인 XML은 다음과 같습니다.
<?xml version="1.0" encoding="utf-8"?>
<Report Id="ID1" Type="Demo Report" Created="2011-01-01T01:01:01+11:00" Culture="en" xmlns="http://demo.com/2011/demo-schema">
<ReportInfo>
<Name>Demo Report</Name>
<CreatedBy>Unit Test</CreatedBy>
</ReportInfo>
</Report>
그리고 아래는 작동해야한다고 생각했지만 작동하지 않는 코드입니다.
XDocument xdoc = XDocument.Load(@"C:\SampleXML.xml");
XmlNamespaceManager xnm = new XmlNamespaceManager(new NameTable());
xnm.AddNamespace(String.Empty, "http://demo.com/2011/demo-schema");
Console.WriteLine(xdoc.XPathSelectElement("/Report/ReportInfo/Name", xnm) == null);
누구에게 아이디어가 있습니까? 감사.
1
아래의 다른 답변을 참조하십시오. XPath 1.0 구현이 빈 접두사를 처리 할 수 없기 때문에 작동하지 않습니다
—
Paul Hatcher
다른 사람들이 여기에서 말했듯이 [XmlNamespaceManager]에 네임 스페이스를 추가 할 때 빈 접두사를 사용하지 마십시오. 접미사가 있거나없는 여러 개의 [xmlns] 속성이있는 문서가있는 작은 코드 예제를보고 싶은 경우를 위해이 주석을 추가하는 것입니다. 여기를 참조하십시오 : stackoverflow.com/a/38272604/5838538
—
Jelgab