我是XML的新手,我正在努力理解基础知识.我在"学习XML"中读到了以下这一行,但对我来说仍然不太清楚.有人能指出我的书或网站,清楚地解释这些基础知识吗?
从学习XML:
XML声明描述了文档的一些最常见的属性,告诉XML处理器它需要一个XML解析器来解释这个文档.
这是什么意思?
我理解这个xml version部分 - doc的doc和user都应该在同一版本的XML中"讨论".但那encoding部分呢?为什么这有必要?
我对以下短语中的"转义"和"编码"之间的区别感到困惑:
Xml编码
Xml转义
编码的Html
逃脱的网址
...
有谁可以向我解释一下?
我有一个erlang字符串,可能包含像"&<等等字符:
1> Unenc = "string & \"stuff\" <".
ok
Run Code Online (Sandbox Code Playgroud)
是否有一个Erlang函数可以解析字符串并编码所有需要的HTML/XML实体,例如:
2> Enc = xmlencode(Unenc).
"string & "stuff" <".
Run Code Online (Sandbox Code Playgroud)
?
我的用例是针对相对较短的字符串,来自用户输入.xmlencode函数的输出字符串将是XML属性的内容:
<company name="Acme & C." currency="€" />
Run Code Online (Sandbox Code Playgroud)
最终的XML将通过网络适当发送.
我正在使用asp.net MVC4 Web Api.
我已经设定:
Dim xml = GlobalConfiguration.Configuration.Formatters.XmlFormatter
xml.UseXmlSerializer = True
Run Code Online (Sandbox Code Playgroud)
我创建了一个类,它指定了我需要的XML,这很有效.
我几乎在那里,但我不确定如何设置:
<?xml version="1.0" encoding="utf-8"?>
Run Code Online (Sandbox Code Playgroud)
以及如何设置元素属性:
xmlns:xsi和xsi:schemaLocation
我可以使用属性设置吗?
我正在尝试使用 Boost 函数read_xml和write_xml读取/写入 XML 文件。XML文件原始编码是“windows-1252”,但经过读/写操作后,编码变成“utf-8”。
这是 XML 原始文件:
<?xml version="1.0" encoding="windows-1252" standalone="no" ?>
<lot>
<name>Lot1</name>
<lot_id>123</lot_id>
<descr></descr>
<job>
<name>TEST</name>
<num_items>2</num_items>
<item>
<label>Item1</label>
<descr>Item First Test</descr>
</item>
<item>
<label>Item2</label>
<descr>Item Second Test</descr>
</item>
</job>
</lot>
Run Code Online (Sandbox Code Playgroud)
这是输出:
<?xml version="1.0" encoding="utf-8"?>
<lot>
<name>Lot1</name>
<lot_id>123</lot_id>
<descr></descr>
<job>
<name>TEST</name>
<num_items>2</num_items>
<item>
…Run Code Online (Sandbox Code Playgroud) 我的目标是在不丢失 Unicode 字符的情况下获得 XML的二进制缓冲区(在这种情况下MemoryStream.ToArray()会产生byte[])。我希望 XML 序列化程序使用数字字符引用来表示在 ASCII 中无效的任何内容。到目前为止,我有:
using System;
using System.IO;
using System.Text;
using System.Xml;
class Program
{
static void Main(string[] args)
{
var doc = new XmlDocument();
doc.LoadXml("<x>“??”</x>");
using (var buf = new MemoryStream())
{
using (var writer = new StreamWriter(buf, Encoding.ASCII))
doc.Save(writer);
Console.Write(Encoding.ASCII.GetString(buf.ToArray()));
}
}
}
Run Code Online (Sandbox Code Playgroud)
上述程序产生以下输出:
$ ./ConsoleApplication2.exe
<?xml version="1.0" encoding="us-ascii"?>
<x>????</x>
Run Code Online (Sandbox Code Playgroud)
我想通了如何告诉XmlDocument.Save()使用encoding="us-ascii"-by移交它TextStream与TextStream.Encoding设置为Encoding.ASCII。文档说The encoding on the TextWriter determines the …
在android中使用sax解析器解析xml文档时出错.有人可以帮我解决这个错误吗?错误如下所示:
org.apache.harmony.xml.ExpatParser$ParseException: At line 5, column 9: not well-formed (invalid token)
Run Code Online (Sandbox Code Playgroud)
xml文档编码是windows-1256.以下是xml代码中的示例:
<?xml version="1.0" encoding="windows-1256"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/">
<channel>
<title>??????? ???? ??????</title>
<link>http://forum.mn66.com/</link>
<description>?????,?????? ????,?????,?????,???????,???????,??????,??????,?????,???????,fashion</description>
<language>ar</language>
<lastBuildDate>Wed, 23 Nov 2011 08:38:36 GMT</lastBuildDate>
<generator>vBulletin</generator>
<ttl>60</ttl>
<image>
<url>http://forum.mn66.com/images/Ops_fayez/misc/rss.jpg</url>
<title>??????? ???? ??????</title>
<link>http://forum.mn66.com/</link>
</image>
<item>
<title>???? ????? ????</title>
<link>http://forum.mn66.com/t312645.html</link>
<pubDate>Wed, 23 Nov 2011 08:31:20 GMT</pubDate>
<description><![CDATA[?​?​???? ?? ????? : [ ????? ????? ???????  ] !
???? ???? : ????? ??????? . . 
??????? ?? ???? ?? ???????
????? ?? : ??????? ..
?? ٱ??? …Run Code Online (Sandbox Code Playgroud) 我必须创建一个编码为的xml文件
<?xml version="1.0" encoding="ISO-8859-1"?>
Run Code Online (Sandbox Code Playgroud)
目前我使用LINQ创建的xml标记为
<?xml version="1.0" encoding="UTF-8"?>
Run Code Online (Sandbox Code Playgroud)
我该怎么做才能使用LINQ.
xml-encoding ×8
xml ×5
c# ×2
html-encode ×2
.net ×1
android ×1
boost ×1
encoding ×1
erlang ×1
escaping ×1
linq-to-xml ×1
xml-parsing ×1
xmldocument ×1