test.xml內容如下
<?xml version="1.0"?>
<Tests>
<Test TestId="0001" TestType="CMD">
<Name>Convert number to string</Name>
<CommandLine>Examp1.EXE</CommandLine>
<Input>1</Input>
<Output>One</Output>
</Test>
<Test TestId="0002" TestType="CMD">
<Name>Find succeeding characters</Name>
<CommandLine>Examp2.EXE</CommandLine>
<Input>abc</Input>
<Output>def</Output>
</Test>
<Test TestId="0003" TestType="GUI">
<Name>Convert multiple numbers to strings</Name>
<CommandLine>Examp2.EXE /Verbose</CommandLine>
<Input>123</Input>
<Output>One Two Three</Output>
</Test>
<Test TestId="0004" TestType="GUI">
<Name>Find correlated key</Name>
<CommandLine>Examp3.EXE</CommandLine>
<Input>a1</Input>
<Output>b1</Output>
</Test>
<Test TestId="0005" TestType="GUI">
<Name>Count characters</Name>
<CommandLine>FinalExamp.EXE</CommandLine>
<Input>This is a test</Input>
<Output>14</Output>
</Test>
<Test TestId="0006" TestType="GUI">
<Name>Another Test</Name>
<CommandLine>Examp2.EXE</CommandLine>
<Input>Test Input</Input>
<Output>10</Output>
</Test>
</Tests>
讀取xml文件
方式一:
val xml=XML.load(this.getClass.getClassLoader.getResource("test.xml"))
方式二:
val xml=XML.load(new FileInputStream("D:\\java\\BigData\\scala\\Demo\\src\\main\\resources\\test.xml"))
方式三
val xml =XML.load(new InputStreamReader(new FileInputStream("D:\\java\\BigData\\scala\\Demo\\src\\main\\resources\\test.xml")))
查找
查找Test下的Name
val name=xml \"Test" \"Name"
查找所有Name
val names=xml \\"Name"
查找Test中屬性“TestId”
方式一:
val TestIds = (xml \ "Test").map(_ \ "@TestId")
方式二:
val TestIds = (xml \ "Test" \\ "@TestId")
查找Test中屬性“TestId”=“0003”
方式一:
val filters=(xml \\ "Test").filter(_.attribute("TestId").exists(_.text.equals("0003")))
方式二:
val filters=(xml \\ "Test").filter(x=>((x \ "@TestId").text).equals("0003"))
獲取所有Test下的“TestId”,文本內容,“TestType”的值
val filters=(xml \\ "Test").map(x=>(x \ "@TestId",x.text,x \ "@TestType"))