0
파일에서 XML 문서를 쿼리 할 수는 있지만이 XML 코드 조각에서 단 하나의 "필터"노드 만 가져올 필요가 있습니다 (물론 자식 노드와 함께) 내 C# 방법으로 전달되는 "ID"를 기반으로 :내 Linq to XML 쿼리에서 중복 노드 문제가 발생했습니다
<outBound>
<body>
<filter id="1">
<name>A. All Portfolios</name>
...
<query>
...
</query>
</filter>
<filter id="2">
<name>A. Busines Portfolios</name>
...
<query>
...
</query>
</filter>
</body>
</outBound>
는 내가 다운로드 한 일부 MS 샘플에서 내 L2X 코드를 모델링,하지만 어떻게 간단히 말해서 나는 단지 필터를 당길 것인가?
이<filter>
<filter id="1">
<name>A. All Portfolios</name>
...
<query>
...
</query>
</filter>
</filter>
사람 만 당겨이 조금 조정에 좀 도와 줄래 :
XDocument document = XDocument.Load(Server.MapPath("~/xml/portfolioFilters.xml")); //portfolioFiltersResponse //portfolioFilters
var portFilterAll = from x in document.Descendants()
where x.Name == "filter"
select x;
var portFilt = new XElement("filter",
from x in document.Descendants("filter")
where (string)x.Element("name") == filterName
select new XElement("filter",
x.Attribute("id"),
x.Element("name"),
x.Element("type"),
x.Element("userId"),
x.Element("security"),
x.Element("queries")
));
그러나, 내가 내 최종 결과로 얻는하고있어이 같은 상단에 EXTRA "필터"노드입니다 "필터"노드, "id"속성을 기반으로해야합니까?
감사합니다. Bob
VAR pfFilter = X에서 document.Descendants에() 곳 x.Name == "필터"&& x.Element ("이름"). Value.Equals (filterName) select x; –
어떻게 코드를 강조 표시합니까? thx –
일반적으로 오른쪽 서식을 지정하면 강조 표시됩니다. 자세한 내용은 http://stackoverflow.com/editing-help#syntax-highlighting에서 확인하십시오. 'select x;'를 추가하여 쿼리를 수정했습니다. -'x.Element ("name") 대신'(string) x.Element ("name")'을 사용하고 싶습니다 .Value'를 사용하면 NullReferenceExceptions를 피할 수 있습니다. 이름이 존재하지 않습니다. (백틱 (')) – Pawel