getElementById () 태그를 찾지 않습니까?
-
18-09-2019 - |
문제
다음 .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 답변에 설명 된 무차별 인력 검색이 작동합니다.
제휴하지 않습니다 StackOverflow