我正在尝试在xml文件中写入一些我迄今为止创建的很好的概要文件,
输入字符串为ProfilesList(0)=“45 65 67”ProfilesList(1)=“ProfileName”;
public void CreateGroupXML(String GroupNameWithPath, List<String> ProfilesList)
{
ProfilesGroup.ProfilesList = ProfilesList;
XmlWriterSettings ws = new XmlWriterSettings();
ws.NewLineHandling = NewLineHandling.Entitize;
for (int i = 0; i < ProfilesList.Count; i++)
{
ProfilesList[i] += Environment.NewLine;
}
XmlSerializer serializer = new XmlSerializer(typeof(ProfilesGroup));
using (XmlWriter wr = XmlWriter.Create(GroupNameWithPath, ws))
{
serializer.Serialize(wr, ProfilesGroup);
}
}
}
在xml文件中,配置文件是这样写的:
ProfilesList="45 65 67
 profilename

public List<string> getProfilesOfGroup(string groupNameFullPath)
{
Stream stream = null;
try
{
stream = File.OpenRead(groupNameFullPath);
XmlSerializer serializer = new XmlSerializer(typeof(ProfilesGroup));
_ProfilesGroup = (ProfilesGroup)serializer.Deserialize(stream);
stream.Close();
return _ProfilesGroup.ProfilesList;
}
catch (Exception Ex)
{
log.ErrorFormat("Exception in getProfilesOfGroup: {0}", Ex.Message);
if (stream != null)
{
stream.Close();
}
return null;
}
}
the output (lets call the string ProfileList) contains :
ProfileList(0) = 45
ProfileList(1) = 65
ProfileList(2) = 67
ProfileList(3) = profilename
and i expecting the string to contain
ProfileList(0) = 45 65 67
ProfileList(1) = profilename
?XML Version=“1.0”encoding=“UTF-8”?profilesgroup xmlns:xsi=“http://www.w3.org/2001/xmlschema-instance”xmlns:xsd=“http://www.w3.org/2001/xmlschema”profileslist=“45 65 67 profilename”
和类:
[XmlRootAttribute("VProfilesGroup", IsNullable = false, DataType = "", Namespace = "")]
public class ProfilesGroup
{
[XmlAttribute("ProfilesList")]
public List<String> ProfilesList = new List<string>();
}
为什么不直接删除[XmlAttribute(“ProfilesList”)]
属性?您的数据将被成功序列化和反序列化。XML看起来如下所示:
<VProfilesGroup xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<ProfilesList>
<string>45 65 67</string>
<string>profilename</string>
</ProfilesList>
</VProfilesGroup>
在这种格式中,字符串列表被明确定义为有两个条目。这是使用XmlSerializer
序列化和反序列化字符串数组的标准方法。还是有一些外部约束使您将列表声明为属性?
更新
[XmlRootAttribute("VProfilesGroup", IsNullable = false, DataType = "", Namespace = "")]
public class ProfilesGroup
{
static readonly char Delimiter = '\n';
[XmlIgnore]
public List<String> ProfilesList { get; set; } // Enhance the setter to throw an exception if any string contains the delimiter.
[XmlAttribute("ProfilesList")]
[DebuggerBrowsable(DebuggerBrowsableState.Never)]
public string ProfilesListText
{
get
{
return string.Join(Delimiter.ToString(), ProfilesList.ToArray());
}
set
{
ProfilesList = new List<string>(value.Split(Delimiter));
}
}
public static string CreateGroupXML(List<String> ProfilesList)
{
var group = new ProfilesGroup();
group.ProfilesList = ProfilesList;
return XmlSerializationHelper.GetXml(group);
}
public static List<string> GetProfilesOfGroup(string xml)
{
XmlSerializer serializer = new XmlSerializer(typeof(ProfilesGroup));
var group = (ProfilesGroup)serializer.Deserialize(new StringReader(xml));
return group == null ? null : group.ProfilesList;
}
public static void Test()
{
List<string> list = new List<string>(new string[] { "45 65 67", "profilename" });
var xml = CreateGroupXML(list);
var newList = GetProfilesOfGroup(xml);
bool same = list.SequenceEqual(newList);
Debug.Assert(same); // No assert.
}
}
<?xml version=\"1.0\" encoding=\"utf-16\"?>\r\n<VProfilesGroup xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" ProfilesList=\"45 65 67
profilename\" />
public static class XmlSerializationHelper
{
public static string GetXml<T>(T obj, XmlSerializer serializer) where T : class
{
using (var textWriter = new StringWriter())
{
XmlWriterSettings settings = new XmlWriterSettings();
settings.Indent = true; // For cosmetic purposes.
settings.IndentChars = " "; // The indentation used in the test string.
using (var xmlWriter = XmlWriter.Create(textWriter, settings))
{
serializer.Serialize(xmlWriter, obj);
}
return textWriter.ToString();
}
}
public static string GetXml<T>(T obj) where T : class
{
XmlSerializer serializer = new XmlSerializer(typeof(T));
return GetXml(obj, serializer);
}
}
我在从xml文件中读取信息时遇到了一点问题... 传给我的文件有几千行。我只对300-400行感兴趣。当用户完成操作并且要读取的数据可以存储在中时,我不需要将任何数据写回xml。 我只对最内部名称元素的感兴趣(前两个是“098-0031”和“098-0032”)。 这是我的代码: 但是条件从来没有填满...谁能给我解释一下为什么。也许可以向我展示一种简单的方法来将这些值存储在中?提前感谢! 编辑:
问题内容: 我正在尝试使用Python 2.7.1(在Windows上,fyi)从zip文件中提取文件,而我的每一次尝试都显示了具有Modified Date =提取时间的提取文件(不正确)。 我也尝试使用.extractall方法,结果相同。 谁能告诉我我在做什么错? 我想认为这是可能的,而不必重新校正每个[Windows文件的文件创建日期?](http://codingdict.com/que
问题内容: 我有一个XML文件,需要在Android SDK中进行解析。 如何从资源中读取XML文件路径? XML包含: 问题答案: 将其放在文件夹下。然后,您可以使用以下命令打开它: 这里有一个有关如何使用的示例: http://android-er.blogspot.com/2010/04/read-xml-resources-in-android- using.html
我试图从文件中读取内容,然后将其保存在SoapUi的属性中。 文件的外观(test.txt): 我的代码: 出于某种原因,它只保存属性中的最后一个值(1231434324)。 下面的示例实际上将所有值保存到属性中,但也会在属性值的开头和结尾插入方括号。 [123123123123, 123124234353, 231231231241, 213123123123]
问题内容: 我在从文件读取,处理其字符串并将其保存到UTF-8文件时遇到问题。 这是代码: 然后,我对可变文本进行一些处理。 接着 这样可以完美地输出文件,但是根据我的编辑器,它在iso 8859-15中可以输出。由于相同的编辑器将输入文件(在变量文件名中)识别为UTF-8,所以我不知道为什么会这样。据我的研究表明,注释行应该可以解决问题。但是,当我使用这些行时,产生的文件主要具有特殊字符的乱码,
问题内容: 我有一个大文件,需要阅读并制作字典。我希望尽快。但是我在python中的代码太慢了。这是显示问题的最小示例。 首先制作一些假数据 现在,这里是一个最小的python代码片段,可以读入它并制作一个字典。 时间: 但是,可以更快地读取整个文件,如下所示: 我的CPU有8个核心,是否可以在python中并行化此程序以加快速度? 一种可能是读取大块输入,然后在不同的非重叠子块上并行运行8个进程