2014-10-21 5 views
1

ASP.Net MVC 응용 프로그램에서 작업하고 있습니다. 내 응용 프로그램에는 다음에 실행할 응용 프로그램에 사용할 수있는 정보를 저장하는 xml 파일이 있습니다. 오늘의 현재 날짜 "시작일"가 내보기에 "이벤트"요소를이 파일을 구문 분석 만 보내려고, 내 컨트롤러에서.NET에서 XML을 읽고 조건에 따라 요소를 선택하십시오.

<data> 
    <event> 
    <id><![CDATA[38079482]]></id> 
    <start_date><![CDATA[2014-10-21 09:45]]></start_date> 
    <end_date><![CDATA[2014-10-21 11:00]]></end_date> 
    <text><![CDATA[38079482]]></text> 
    <engineer_id><![CDATA[20602]]></engineer_id> 
    <color><![CDATA[#00CCCC]]></color> 
    <status><![CDATA[Dispatched]]></status> 
    <customer><![CDATA[Reed Hayes]]></customer> 
    <number><![CDATA[689-761-834 ]]></number> 
    <category><![CDATA[N/A]]></category> 
    </event> 
    <event> 
    <id><![CDATA[38129667]]></id> 
    <start_date><![CDATA[2014-10-20 11:20]]></start_date> 
    <end_date><![CDATA[2014-10-20 13:00]]></end_date> 
    <text><![CDATA[38129667]]></text> 
    <engineer_id><![CDATA[20525]]></engineer_id> 
    <color><![CDATA[Red]]></color> 
    <status><![CDATA[Cancelled]]></status> 
    <customer><![CDATA[Gervase Griffin]]></customer> 
    <number><![CDATA[400-401-401 ]]></number> 
    <category><![CDATA[N/A]]></category> 
    </event> 
</data> 

: 여기

는 XML의 샘플입니다 .

컨트롤러 방법은 지금까지 다음과 같습니다 : 당신은 XML 구조를 조회 만 당신이 필요로하는 요소를 얻기 위해 XML에 LINQ를 사용할 수 있습니다

public void gatherXML() 
{ 
    string path = HttpContext.Server.MapPath("~/Content/Tasks.xml"); 
    XmlDocument doc = new XmlDocument(); 
    doc.Load(path); 
    doc.PreserveWhitespace = true; 

    ViewBag.xml = doc.InnerXml; 
} 
+0

당신의 문제? – Christian

+0

XML 파일을 구문 분석하여 start_date가 오늘의 현재 날짜 인 요소 만 검색하고 싶습니다. –

+1

XML에 LINQ가 필요합니다 –

답변

1

. 문서를 조회 할 수

var doc = XDocument.Load("XMLFile1.xml"); 

var res = new XDocument 
    (new XElement("data", 
     (from i in doc.Root.Elements() 
     where i.Element(XName.Get("start_date")).Value == "2014-10-21 09:45" 
     select i))); 

var xml = res.ToString(); // Reduced XML containing only the matching element 

또한 사용할 수 XPath를 및 이전하는 XmlDocument API : 여기

특정 날짜 요소를 찾을 수있는 예입니다

무엇입니까
var xdoc = new XmlDocument(); 
xdoc.Load("XMLFile1.xml"); 
XmlNode root = xdoc.DocumentElement; 

// Select the nodes that match the date condition 
XmlNodeList node = root.SelectNodes(
    "descendant::event[start_date='2014-10-21 09:45']"); 
+0

게시물을 보내 주셔서 감사합니다.이 솔루션을 최대한 빨리 사용해 보겠습니다. –

+0

감사합니다. 첫 번째 솔루션은 완벽하게 작동합니다! 보기로 전송하기 전에 코드를 구성해야합니다. –

+1

나는 그것이 당신을 위해 일해서 다행이다 :) –

관련 문제