add all of Chapter16[09-10] exercises
diff --git a/src/Chapter16/exercise09.scala b/src/Chapter16/exercise09.scala
index 1928d26..b1f7ce2 100644
--- a/src/Chapter16/exercise09.scala
+++ b/src/Chapter16/exercise09.scala
@@ -4,6 +4,7 @@
 import scala.xml._
 val html = ""
 val replaceNoneAlt = html match{
-  case img @ <img/> if(!_.attribute(alt)) => img % Attribute(null,"alt","TODO",null)
+  case img @ <img/> if(_.attribute(alt)=="NONE") => img % Attribute(null,"alt","TODO",null)
+  case _ => html
 }
 println(replaceNoneAlt)
\ No newline at end of file
diff --git a/src/Chapter16/exercise10.scala b/src/Chapter16/exercise10.scala
new file mode 100644
index 0000000..facfa24
--- /dev/null
+++ b/src/Chapter16/exercise10.scala
@@ -0,0 +1,24 @@
+/**
+ * 编写一个函数,读取XHTML文档,执行前一个练习中的变换,并保存结果。确保保留了DTD以及所有CDATA内容。
+ */
+import xml._
+import xml.transform._
+import xml.parsing.ConstructingParser
+import xml.dtd.DocType
+import java.io.File
+
+val doc = ConstructingParser.fromFile(new File("./test.xml"),
+  true).document
+val a = doc.docElem
+
+val imgRule = new RewriteRule {
+  override def transform(n:Node) = n match {
+    case i @ <img>{_*}</img> if(i.attribute("alt") == None) =>
+      i % Attribute(null, "alt", "TODO", Null)
+    case _ => n
+  }
+}
+
+val result = new RuleTransformer(imgRule).transform(a)
+XML.save("./test.xml", result(0), "UTF-8", false,
+  DocType("html", doc.dtd.externalID, Nil))
\ No newline at end of file