문제

다음 .NET C# Windows 서비스에서 유효한 XML 파일을 읽습니다. 해당 태그 (U1_000)는 절대적으로 요소에 있습니다.

<book id="u1_000" category="xyz"> 

getElementById ()가 태그가있는 책 요소를 찾지 못하는 이유가 있습니까? - 감사해요

XmlDocument doc = new XmlDocument();
doc.Load("C:\\j.xml");
XmlElement ee = doc.GetElementById("U1_000");

<book id="U1_000" category="web"> 
도움이 되었습니까?

해결책

다른 것이 없다면 XPath를 백업으로 사용합니다.

string id = "u1_000";
string query = string.Format("//*[@id='{0}']", id); // or "//book[@id='{0}']"
XmlElement el = (XmlElement)doc.SelectSingleNode(query);

다른 팁

을 체크하다 이 방법에 대한 MSDN 문서. 아래 샘플에서 DocType를 사용하는 ID가 무엇을 설정하는지 확인할 수 있습니다. 이것은 당신에게 문제를 해결할 수 있습니다.

요소에 어떤 속성이 고유 ID를 구성 할 속성을 설정하려면 DTD가 필요합니다. XML에서는 자동으로 가정되지 않습니다 id 속성은 고유 한 요소 ID로 취급되어야합니다.

일반적으로 "undted"xml getElementById는 그다지 유용하지 않습니다. 대부분의 경우 처리중인 XML 파일의 구조가 이해됩니다 (예 : 루트 요소는 books 그것은 일련의 일련의 것을 포함합니다 book 요소) 따라서 일반적인 액세스는 다음과 같이 보일 것입니다.

 XmlElement book = (XmlElement)doc.DocumentElement.SelectSingleNode("book[@ID='U1_000']");

XML 구조 및/또는 요소의 태그 이름을 실제로 모른다면 Marcs 답변에 설명 된 무차별 인력 검색이 작동합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top