다음 XML 형식이 있다고 가정합니다.select within select select
<data>
<appName>Microsoft Word</appName>
<appId>123</appId>
</data>
XML 내에 여러 데이터 트리가있는 경우 데이터 개체 목록을 작성하는 다음 코드가 있습니다.
List<DataObj> dataObjList =
(
from dataNode in xmlDoc.Elements("data")
select new DataObj
{
appName = dataNode.Element("appName"),
appId = dataNode.Element("appId")
}
).ToList();
그러나, 나는과 같이, 데이터 태그 아래에 추가로 나무를 추가하면 내가 문제로 실행 해요 :
<data>
<appName>Microsoft Word</appName>
<appId>123</appId>
<appOptions>
<Win7Compat>true</Win7Compat>
<Win7x64Compat>false</Win7x64Compat>
</appOptions>
</data>
그리고 난 다음 코드를 사용합니다
List<DataObj> dataObjList =
(
from dataNode in xmlDoc.Elements("data")
select new DataObj
{
appName = dataNode.Element("appName"),
appId = dataNode.Element("appId")
appOptions =
(
from appNode in dataNode.Elements("appOptions")
select new AppOptionsObj
{
win7Compat = appNode.Element("Win7Compat"),
win7x64Compat = appNode.Element("Win7x64Compat")
}
) as AppOptionsObj,
}
).ToList();
을 내 appOptions 객체는 항상 null로 처리됩니다. 나는 하위 트리를 제대로 파싱하지 않는다고 느낀다.
그것이 있어야하지 않나요'dataNode.Element에서 appNode ("appOptions")'(단일)에서? 또한 게시 한 내용이 유효한 XML이 아닙니다. 'Win7Compat'과 다음 형제가 닫히지 않았습니다. –
이 코드가 실행 한 코드라고 생각하지 않습니다. 명확한 구문 오류와 오타가 있습니다. 도움이 필요하면 작업중인 코드를 제시해야합니다. 게시 된 코드는 많은 오류를 줄 것입니다. – Hogan
이 XML을 객체로 간단하게 비 직렬화하지 않는 이유는 무엇입니까? –