이 XML 파일로 원하는 노드를 얻기 위해 적절한 XPATH 구문을 찾는 데 문제가 있습니다. 하나는 XML에 NameSPace가 없으므로 코드에 하나를 추가해야합니다. 나는 이것이 내 XPATH에 영향을 미친다고 생각한다.XPATH Help : XPathNodeIterator를 사용하여 네임 스페이스에서 XML 노드 찾기
나는이처럼 보이는 XML 파일이 있습니다
<configuration xmlns="http://schemas.microsoft.com/support/2003/02/config">
<name>Content</name>
<description>Desc</description>
<lastModifiedBy>Me</lastModifiedBy>
<lastModifiedDate>2011-04-18T14:05:00</lastModifiedDate>
<section name="MaintenanceNotices">
<key name="MaintenanceNote1" value="The Title Value" />
<link id="1234" type="5" href="" target="_self" name="MaintenanceNote1a">
<description>Description</description>
</link>
</section>
</configuration>
을 그래서, XPATH를 위해 내가 "구성"요소에 "이름"노드 값을 얻으려면을, 나는이를 사용하는 것이 가정 XPATH :
/configuration/name
하지만 때로는 내가 NS를 추가해야합니다 그것을 :
/ns:configuration/ns:name
을 그리고 나는 전자를 찾을 수 있습니다 값을 다음과 같이 조정하십시오 :
while (xmlNodeIterator.MoveNext()) {
result += xmlNodeIterator.Current.SelectSingleNode("name", nsmgr).ToString();
}
그러나 이것은 전혀 효과가 없습니다. 그것은 xpath 내가 뭘하려고 상관없이 XML에서 어떤 가치를 찾아 실 거예요.
private string GetXML()
{
string result = string.Empty;
string fileName = "Content.xml";
string filePath = "C:\\Content\\{0}";
XPathDocument xdoc = new XPathDocument(string.Format(filePath, fileName));
var nav = xdoc.CreateNavigator();
XmlNamespaceManager nsmgr = new XmlNamespaceManager(new NameTable());
nsmgr.AddNamespace("ns", "http://schemas.microsoft.com/taxonomy/2003/1");
nsmgr.AddNamespace("gds", "http://support.microsoft.com/common/schemas/gdsPage/1/");
string sectionName = "MaintenanceNotices";
string xpath = "/configuration";
// section[name={0}]"; ///key[name=MaintenanceNote1]/";
XPathNodeIterator xmlNodeIterator = nav.Select(string.Format(xpath, sectionName), nsmgr);
while (xmlNodeIterator.MoveNext())
{
result += xmlNodeIterator.Current.SelectSingleNode("name", nsmgr).ToString();
}
return result;
}
당신은 어떤 문제가 있거나 내 XPath는 구문에 대한 제안을 제공 할 수
: 여기 내 코드는?감사합니다. 당신은 결코 당신의 문서의 노드에있는 네임 스페이스를 등록하지 것을 제외하고 나는, 당신의 XPath를 잘못 아무것도 표시되지 않습니다
[C#으로 원하는 XPath를 작동하지 않습니다]의 중복 가능성 (http://stackoverflow.com/questions/2576024/xpath-doesnt-work-as -desired-in-c) –