2010-05-25 37 views
0

我想檢查我的XML文件,如果HeaderReportUnit存在,我怎麼能檢查這個頭是否存在? 我使用2.0裝配,真的感謝您的幫助我如何檢查這個標題是否存在?

<?xml version="1.0" encoding="UTF-8" ?> 
- <HeadReportUnit> 
- <Title> 
    <ModuleNum>ModuleNum</ModuleNum> 
    <hdstSetPos>hdstSetPos</hdstSetPos> 
    <hdstNzlName>hdstNzlName</hdstNzlName> 
    <nzavSpecName>nzavSpecName</nzavSpecName> 
    <nzavNzlDiameter>nzavNzlDiameter</nzavNzlDiameter> 
    <nzavNzlSizeX>nzavNzlSizeX</nzavNzlSizeX> 
    <nzavNzlSizeY>nzavNzlSizeY</nzavNzlSizeY> 
    <nzavNzlType2>nzavNzlType2</nzavNzlType2> 
    </Title> 
- <Unit> 
    <ModuleNum>1</ModuleNum> 
    <hdstSetPos>1- 1</hdstSetPos> 
    <hdstNzlName>R07-007-070</hdstNzlName> 
    <nzavSpecName>AA05700</nzavSpecName> 
    <nzavNzlDiameter>0.0</nzavNzlDiameter> 
    <nzavNzlSizeX>0.7</nzavNzlSizeX> 
    <nzavNzlSizeY>0.6</nzavNzlSizeY> 
    <nzavNzlType2>Standard</nzavNzlType2> 
    </Unit> 
- <Unit> 
    <ModuleNum>1</ModuleNum> 
    <hdstSetPos>1- 2</hdstSetPos> 
    <hdstNzlName>R07-007-070</hdstNzlName> 
    <nzavSpecName>AA05700</nzavSpecName> 
    <nzavNzlDiameter>0.0</nzavNzlDiameter> 
    <nzavNzlSizeX>0.7</nzavNzlSizeX> 
    <nzavNzlSizeY>0.6</nzavNzlSizeY> 
    <nzavNzlType2>Standard</nzavNzlType2> 
    </Unit> 
- <Unit> 
    <ModuleNum>1</ModuleNum> 
    <hdstSetPos>1- 3</hdstSetPos> 
    <hdstNzlName>R07-007-070</hdstNzlName> 
    <nzavSpecName>AA05700</nzavSpecName> 
    <nzavNzlDiameter>0.0</nzavNzlDiameter> 
    <nzavNzlSizeX>0.7</nzavNzlSizeX> 
    <nzavNzlSizeY>0.6</nzavNzlSizeY> 
    <nzavNzlType2>Standard</nzavNzlType2> 
    </Unit> 
- <Unit> 
    <ModuleNum>1</ModuleNum> 
    <hdstSetPos>1- 4</hdstSetPos> 
    <hdstNzlName>R07-007-070</hdstNzlName> 
    <nzavSpecName>AA05700</nzavSpecName> 
    <nzavNzlDiameter>0.0</nzavNzlDiameter> 
    <nzavNzlSizeX>0.7</nzavNzlSizeX> 
    <nzavNzlSizeY>0.6</nzavNzlSizeY> 
    <nzavNzlType2>Standard</nzavNzlType2> 
    </Unit> 
- <Unit> 
    <ModuleNum>1</ModuleNum> 
    <hdstSetPos>1- 5</hdstSetPos> 
    <hdstNzlName>R07-007-070</hdstNzlName> 
    <nzavSpecName>AA05700</nzavSpecName> 
    <nzavNzlDiameter>0.0</nzavNzlDiameter> 
    <nzavNzlSizeX>0.7</nzavNzlSizeX> 
    <nzavNzlSizeY>0.6</nzavNzlSizeY> 
    <nzavNzlType2>Standard</nzavNzlType2> 
    </Unit> 
- <Unit> 
    <ModuleNum>1</ModuleNum> 
    <hdstSetPos>1- 6</hdstSetPos> 
    <hdstNzlName>R07-007-070</hdstNzlName> 
    <nzavSpecName>AA05700</nzavSpecName> 
    <nzavNzlDiameter>0.0</nzavNzlDiameter> 
    <nzavNzlSizeX>0.7</nzavNzlSizeX> 
    <nzavNzlSizeY>0.6</nzavNzlSizeY> 
    <nzavNzlType2>Standard</nzavNzlType2> 
    </Unit> 
- <Unit> 
    <ModuleNum>1</ModuleNum> 
    <hdstSetPos>1- 7</hdstSetPos> 
    <hdstNzlName>R07-007-070</hdstNzlName> 
    <nzavSpecName>AA05700</nzavSpecName> 
    <nzavNzlDiameter>0.0</nzavNzlDiameter> 
    <nzavNzlSizeX>0.7</nzavNzlSizeX> 
    <nzavNzlSizeY>0.6</nzavNzlSizeY> 
    <nzavNzlType2>Standard</nzavNzlType2> 
    </Unit> 
- <Unit> 
    <ModuleNum>1</ModuleNum> 
    <hdstSetPos>1- 8</hdstSetPos> 
    <hdstNzlName>R07-007-070</hdstNzlName> 
    <nzavSpecName>AA05700</nzavSpecName> 
    <nzavNzlDiameter>0.0</nzavNzlDiameter> 
    <nzavNzlSizeX>0.7</nzavNzlSizeX> 
    <nzavNzlSizeY>0.6</nzavNzlSizeY> 
    <nzavNzlType2>Standard</nzavNzlType2> 
    </Unit> 
- <Unit> 
    <ModuleNum>1</ModuleNum> 
    <hdstSetPos>1- 9</hdstSetPos> 
    <hdstNzlName>R07-007-070</hdstNzlName> 
    <nzavSpecName>AA05700</nzavSpecName> 
    <nzavNzlDiameter>0.0</nzavNzlDiameter> 
    <nzavNzlSizeX>0.7</nzavNzlSizeX> 
    <nzavNzlSizeY>0.6</nzavNzlSizeY> 
    <nzavNzlType2>Standard</nzavNzlType2> 
    </Unit> 
- <Unit> 
    <ModuleNum>1</ModuleNum> 
    <hdstSetPos>1- 10</hdstSetPos> 
    <hdstNzlName>R07-007-070</hdstNzlName> 
    <nzavSpecName>AA05700</nzavSpecName> 
    <nzavNzlDiameter>0.0</nzavNzlDiameter> 
    <nzavNzlSizeX>0.7</ 

nzavNzlSizeX

+2

你的問題不明確。而不是問「如何知道這個標題是否存在?」 (因爲「標題」的概念在XML中不存在),請更改您的問題並詢問您想了解的關於XML *的信息。例如,「如何判斷HeaderReportUnit/Title'標籤中是否有一個標籤值爲」nzavNziSizeX「'」的標籤,如果這就是您要求的內容。 – 2010-05-25 13:31:40

+0

您是不是故意問「如何判斷一個節點是否存在於XML中?」 (在你的情況下,節點'HeaderReportUnit') – Dror 2010-05-25 16:14:11

回答

3

你可以選擇與XPathNavigator的節點,看看是否有結果。

例如:

FileStream stream = new FileStream("c:\\file.xml", FileMode.Open); 
XPathDocument document = new XPathDocument(stream); 
XPathNavigator navigator = document.CreateNavigator(); 
XPathNodeIterator node = navigator.Select("/HeadReportUnit"); 
if (node.Count > 0) 
{ 
    // do stuff 
} 
+0

它沒有工作,我得到空,如果它的標記存在 – 2010-05-25 14:02:32

+0

你是對的。我沒有正確測試我的代碼。 XPathNavigator的Select方法返回一個迭代器,所以我們應該使用Count屬性來查看是否有結果。 – basvo 2010-05-25 14:28:05