XML 파일을 쿼리하려고하지만 일부 노드는 네임 스페이스가 있으므로 다른 솔루션으로는 완벽한 솔루션을 얻을 수 없습니다.Linq 비표준 네임 스페이스를 사용하여 XML 쿼리
Xpath없이이 작업을 수행 할 수 있는지 궁금합니다. CB 일부 요소가 아닌 다른 사람에 존재 :
<Household name="Home" xmlns="AP:CB" description="Home" >
<InsuranceClaims/>
<mortgages>
<mortgage id="Sally Mae" xmlns="AP:CB" />
</mortgages>
<Appliances>
<Appliance key="Stove" value="5000" />
</Appliances>
<Persons>
<Person name="Henry" age="35" />
<Person name="Jill" age="23" xmlns="AP:CB"/>
</Persons>
</Household>
XML 그래서 우리는 AP의 네임 스페이스를 가지고있다.
현재 시도하지 않은 결과가 없습니다.
_Household = _XDoc.Descendants()
.Where(x => x.Name == "Persons")
.Select(x => new
{
name = (string)x.Element("Person").Attribute("name").Value,
age = (string)x.Element("Person").Attribute("age").Value
})
.ToDictionary(x => x.age, x => x.name);
나는 일반적인 아이디어가 있다고 생각합니다.
편집 : 대/소문자 구분, 대소 문자 일치를 위해 captialization이 업데이트되었습니다. 하위 절 대괄호에 값을 추가하고 where 절을 변경하지 못했습니다.
이 대소 문자를 구분하므로 이름 = (문자열) x.Element ("인") (이름 = (문자열) x.Element해야한다 "사람"). 나이와 똑같아. 그게 유일한 문제인지는 확실치 않지만, 분명히 문제의 일부입니다. – HaukurHaf
귀하의 요구 사항은 무엇입니까? 왜 그것이 당신을 위해 작동하지 않는 경우 게시물에 댓글을하지 않는 이유는 무엇입니까? – Vishal