积极答复者
XmlDataDocument的Load()和LoadXml()方法加载xml数据后,元素中的值(值为空格)不见了。

问题
-
private void Test(string schema) { string data = "book.xml"; XmlDataDocument documt = new XmlDataDocument(); documt.DataSet.ReadXmlSchema(new StringReader(schema)); documt.Load(data); documt.DataSet.AcceptChanges(); } /* book.xml <!--sample XML fragment--> <book genre='novel' ISBN='1-861003-78' misc='sale-item'> <title> </title> <price>14.95</price> </book> */
注意<title> </title>中间是空格,但是执行完Test()方法后DataSet中空格没有了,请问大侠们该如何解决???
----------------------------------------------------------------------------------------------------------------------------------
非常感谢大家。设置属性PreserveWhitespace为true后,xml中的空格保留了,但是DataSet中还是没有空格。下面是新的测试代码:
public DataSet GetDataSet2() { string schemaFileName = "Table1Schema.xsd"; string dataFileName = "Table1Data.xml"; XmlDataDocument document = new XmlDataDocument(); document.PreserveWhitespace = true; // 是否在元素内容中保留空白 document.DataSet.ReadXmlSchema(schemaFileName); document.Load(dataFileName); document.DataSet.AcceptChanges(); return document.DataSet; } // Table1Data.xml /* <?xml version="1.0" encoding="UTF-8"?> <Table1List> <Table1> <DictID>a</DictID> <DictCode> </DictCode> </Table1> </Table1List> */ // Table1Schema.xsd /* <?xml version="1.0" encoding="utf-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="Table1List"> <xs:complexType> <xs:sequence minOccurs="0" maxOccurs="unbounded"> <xs:element name="Table1"> <xs:complexType> <xs:sequence minOccurs="1" maxOccurs="1"> <xs:element default="" name="DictID" type="xs:string"> <xs:annotation> <xs:documentation>字典内码</xs:documentation> </xs:annotation> </xs:element> <xs:element default="1" name="DictCode" type="xs:string"> <xs:annotation> <xs:documentation>字典编号</xs:documentation> </xs:annotation> </xs:element> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> </xs:schema> */
调用GetDataSet2()方法,结果是document.InnerXml中的数据中包含空格,但是document.DataSet中不包含空格。再请大侠们指教指教。- 已移动 Sheng Jiang 蒋晟Moderator 2010年7月28日 1:12 (发件人:.NET Framework 一般性问题讨论区)
- 已编辑 CountaMa 2010年7月29日 5:40 补充说明
答案
-
documt.PreserveWhitespace = true;
- 已建议为答案 ThankfulHeart 2010年8月2日 2:27
- 已标记为答案 Raymond TangModerator 2010年8月3日 2:52
-
试试这个:
XmlDocument doc = new XmlDocument();
doc.set_PreserveWhitespace(true);
doc.Load("book.xml");- 已建议为答案 ThankfulHeart 2010年8月2日 2:27
- 已标记为答案 Raymond TangModerator 2010年8月3日 2:52
-
你好 设置属性PreserveWhitespace为true
XmlDocument doc = new XmlDocument();
doc.PreserveWhitespace = true;
doc.Load("book.xml");
I see you~,.NET交流群71840452 ,微软中文论坛同城社区成都QQ群:74268428http://hi.baidu.com/1987raymondMy Blog~~~- 已建议为答案 ThankfulHeart 2010年8月2日 2:27
- 已标记为答案 Raymond TangModerator 2010年8月3日 2:52
全部回复
-
documt.PreserveWhitespace = true;
- 已建议为答案 ThankfulHeart 2010年8月2日 2:27
- 已标记为答案 Raymond TangModerator 2010年8月3日 2:52
-
试试这个:
XmlDocument doc = new XmlDocument();
doc.set_PreserveWhitespace(true);
doc.Load("book.xml");- 已建议为答案 ThankfulHeart 2010年8月2日 2:27
- 已标记为答案 Raymond TangModerator 2010年8月3日 2:52
-
你好 设置属性PreserveWhitespace为true
XmlDocument doc = new XmlDocument();
doc.PreserveWhitespace = true;
doc.Load("book.xml");
I see you~,.NET交流群71840452 ,微软中文论坛同城社区成都QQ群:74268428http://hi.baidu.com/1987raymondMy Blog~~~- 已建议为答案 ThankfulHeart 2010年8月2日 2:27
- 已标记为答案 Raymond TangModerator 2010年8月3日 2:52