从下面的文件中
<?xml version="1.0" ?>
- <XMLScreen xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<CX>80</CX>
<CY>24</CY>
<Formatted>true</Formatted>
- <Field>
<Location position="1" left="1" top="0" length="61" />
<Attributes Base="226" Protected="false" FieldType="High" />
*DIU DISPATCH INQUIRY AND UPDATE
</Field>
- <Field>
<Location position="63" left="63" top="0" length="17" />
<Attributes Base="204" Protected="true" />
12:34:48 01/25/13
</Field>
- <Field>
<Location position="80" left="0" top="1" length="5" />
<Attributes Base="204" Protected="true" />
TECH:
</Field>
- <Field>
<Location position="86" left="6" top="1" length="4" />
<Attributes Base="234" Protected="false" FieldType="High" />
0001
</Field>
- <Field>
<Location position="91" left="11" top="1" length="6" />
<Attributes Base="204" Protected="true" />
DATE:
</Field>
- <Field>
<Location position="98" left="18" top="1" length="4" />
<Attributes Base="234" Protected="false" FieldType="High" />
0126
</Field>
- <Field>
<Location position="103" left="23" top="1" length="6" />
<Attributes Base="204" Protected="true" />
TYPE:
</Field>
- <Field>
<Location position="110" left="30" top="1" length="2" />
<Attributes Base="226" Protected="false" FieldType="High" />
</Field>
- <Field>
<Location position="113" left="33" top="1" length="6" />
<Attributes Base="204" Protected="true" />
RESN:
</Field>
- <Field>
<Location position="120" left="40" top="1" length="2" />
<Attributes Base="226" Protected="false" FieldType="High" />
</Field>
- <Field>
<Location position="123" left="43" top="1" length="10" />
<Attributes Base="204" Protected="true" />
GEO CODE:
</Field>
- <Field>
<Location position="134" left="54" top="1" length="1" />
<Attributes Base="226" Protected="false" FieldType="High" />
</Field>
- <Field>
<Location position="136" left="56" top="1" length="9" />
<Attributes Base="226" Protected="false" FieldType="High" />
</Field>
- <Field>
<Location position="146" left="66" top="1" length="11" />
<Attributes Base="204" Protected="true" />
DISP STAT:
</Field>
- <Field>
<Location position="158" left="78" top="1" length="1" />
<Attributes Base="226" Protected="false" FieldType="High" />
</Field>
- <Field>
<Location position="160" left="0" top="2" length="58" />
<Attributes Base="204" Protected="true" />
OPEN/UNTS:00001 00015 CMPL/UNTS:00000 00000 UNABLES:0000
</Field>
- <Field>
<Location position="219" left="59" top="2" length="5" />
<Attributes Base="204" Protected="true" />
SPA:
</Field>
- <Field>
<Location position="225" left="65" top="2" length="4" />
<Attributes Base="234" Protected="false" FieldType="High" />
8155
</Field>
- <Field>
<Location position="230" left="70" top="2" length="4" />
<Attributes Base="234" Protected="false" FieldType="High" />
</Field>
- <Field>
<Location position="235" left="75" top="2" length="4" />
<Attributes Base="234" Protected="false" FieldType="High" />
</Field>
- <Field>
<Location position="240" left="0" top="3" length="11" />
<Attributes Base="204" Protected="true" />
TECH NOTES:
</Field>
- <Field>
<Location position="252" left="12" top="3" length="65" />
<Attributes Base="226" Protected="false" FieldType="High" />
</Field>
- <Field>
<Location position="318" left="78" top="3" length="2" />
<Attributes Base="204" Protected="true" />
</Field>
- <Field>
<Location position="320" left="0" top="4" length="80" />
<Attributes Base="204" Protected="true" />
TYPE RESN JOB # ST/TME ADDRESS TIME UN ZIP CODE DATE
</Field>
- <Field>
<Location position="400" left="0" top="5" length="2" />
<Attributes Base="204" Protected="true" />
01
</Field>
- <Field>
<Location position="403" left="3" top="5" length="19" />
<Attributes Base="206" Protected="true" FieldType="High" />
AF 01 437804
</Field>
- <Field>
<Location position="423" left="23" top="5" length="1" />
<Attributes Base="226" Protected="false" FieldType="High" />
R
</Field>
- <Field>
<Location position="425" left="25" top="5" length="4" />
<Attributes Base="206" Protected="true" FieldType="High" />
0753
</Field>
- <Field>
<Location position="480" left="0" top="6" length="60" />
<Attributes Base="206" Protected="true" FieldType="High" />
CUST REQ: Y
</Field>
- <Field>
<Location position="541" left="61" top="6" length="5" />
<Attributes Base="207" Protected="true" FieldType="Hidden" />
2000
</Field>
- <Field>
<Location position="547" left="67" top="6" length="13" />
<Attributes Base="207" Protected="true" FieldType="Hidden" />
0360
</Field>
- <Field>
<Location position="560" left="0" top="7" length="3" />
<Attributes Base="207" Protected="true" FieldType="Hidden" />
</Field>
- <Unformatted>
<Text>*DIU DISPATCH INQUIRY AND UPDATE 12:34:48 01/25/13</Text>
<Text>TECH: 0001 DATE: 0126 TYPE: RESN: GEO CODE: DISP STAT:</Text>
<Text>OPEN/UNTS:00001 00015 CMPL/UNTS:00000 00000 UNABLES:0000 SPA: 8155</Text>
<Text>TECH NOTES:</Text>
<Text>TYPE RESN JOB # ST/TME ADDRESS TIME UN ZIP CODE DATE</Text>
<Text />
<Text />
<Text />
<Text />
<Text />
<Text />
<Text />
<Text />
<Text />
<Text />
<Text />
<Text />
<Text />
<Text>PF6=NOTE/RESL PF7=BWD PF8=FWD PF9=NEXT PF11=OPEN W/OS NO MORE W/OS</Text>
<Text>DIU22E-PAGING ERROR, ONLY ONE PAGE</Text>
</Unformatted>
</XMLScreen>
我试图仅解析带有文本的行,例如最后两行:
<Text>PF6=NOTE/RESL PF7=BWD PF8=FWD PF9=NEXT PF11=OPEN W/OS NO MORE W/OS</Text>
<Text>DIU22E-PAGING ERROR, ONLY ONE PAGE</Text>
我认为我接近我的最新代码,但我是XML解析的新手:
public static string GetTextByLocationIdNoNull(XmlDocument xmlDoc, int nodeId)
{
string field;
XmlNode node = xmlDoc.SelectSingleNode(String.Format(@"//Location[@position='{0}']", nodeId));
if (node != null)
{
return field = node.ParentNode.InnerText;
}
return "Null";
}
答案 0 :(得分:4)
选择条件不明确。假设在空文本元素之后需要文本元素(使用Linq到Xml的解决方案):
XDocument xdoc = XDocument.Load(path_to_xml);
var query = xdoc.Root.Element("Unformatted")
.Elements("Text")
.SkipWhile(t => !t.IsEmpty)
.SkipWhile(t => t.IsEmpty)
.Select(t => (string)t);
返回:
"PF6=NOTE/RESL PF7=BWD PF8=FWD PF9=NEXT PF11=OPEN W/OS NO MORE W/OS"
"DIU22E-PAGING ERROR, ONLY ONE PAGE"