- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我在工作中广泛使用 .NET XML 技术。我非常喜欢的东西之一是 XSLT 引擎,更准确地说是它的可扩展性。然而,有一小块一直是烦恼的根源。没什么大不了的,也没什么我们不能忍受的,但它阻止了我们生成我们想要生成的漂亮的 XML。
我们所做的其中一件事是内联转换节点并将节点从一个 XML 文档导入到另一个 XML 文档。
可悲的是,当您将节点保存到 XmlTextWriter
(实际上是 XmlWriter.Create(Stream)
返回的任何内容)时,命名空间定义都会被抛入其中,而不管它是否必要(先前定义)。您会得到以下 xml:
<root xmlns:abx="http://bladibla">
<abx:child id="A">
<grandchild id="B">
<abx:grandgrandchild xmlns:abx="http://bladibla" />
</grandchild>
</abx:child>
</root>
对于如何说服 .NET 对其命名空间定义高效,有没有人有建议?
附言。作为一个额外的好处,我想覆盖默认命名空间,在我编写节点时更改它。
最佳答案
使用这段代码:
using (var writer = XmlWriter.Create("file.xml"))
{
const string Ns = "http://bladibla";
const string Prefix = "abx";
writer.WriteStartDocument();
writer.WriteStartElement("root");
// set root namespace
writer.WriteAttributeString("xmlns", Prefix, null, Ns);
writer.WriteStartElement(Prefix, "child", Ns);
writer.WriteAttributeString("id", "A");
writer.WriteStartElement("grandchild");
writer.WriteAttributeString("id", "B");
writer.WriteElementString(Prefix, "grandgrandchild", Ns, null);
// grandchild
writer.WriteEndElement();
// child
writer.WriteEndElement();
// root
writer.WriteEndElement();
writer.WriteEndDocument();
}
此代码产生了所需的输出:
<?xml version="1.0" encoding="utf-8"?>
<root xmlns:abx="http://bladibla">
<abx:child id="A">
<grandchild id="B">
<abx:grandgrandchild />
</grandchild>
</abx:child>
</root>
关于c# - .NET XmlWriter 中的正确命名空间管理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26743/
我想知道 XmlWriter.WriteStartDocument() 背后的原因和 XmlWriter.WriteEndDocument() . 在我的场景中,我正在创建一个包含一些数据的 XML
我想使用 XMLWriter 在 XML 文档之上生成一个嵌套的实体 DTD 声明。我从不带 XMLWriter 的字符串构建代码开始,它也说明了所需的输出: \n"; $sXML .= "%nest
我正在使用 XmlWriter,我想知道是否有人曾尝试编写带有属性的 xml 元素字符串(叶节点),以便输出看起来像 999 代替 999 最佳答案 您可以使用 WriteString .
我无法理解 XmlWriter 在 C# 中的工作方式。假设以下代码在某处使用过。 StringBuilder builder = new StringBuilder(); XmlWriterSett
我正在使用 XmlWriter 并且正在努力创建以下 XML 标记。 我有以下内容: XmlWriterSettings settings = new XmlWriterSettings(); se
我正在尝试生成符合这种格式的 XML 数据: 由于匿名原因,它显然缺少很多标签。 我正在使用 XmlWriter。 我设法用不同的 WriteStartElement() 和 Write
目前我正在使用 XmlWriter,想问一下如何在现有的 XML 文件中写入,例如: a.xml Test3 100 加入 ,例如 Test1 的位置没有任何作用,但最好写在
我正在使用 XmlWriter 构建一些 xml,使用有效的 xml 文件作为我的模板。在文件中,我有这一行: 所以,我在 C# 中做了这个: writer.WriteStartElement("ds
我有一个问题。我编写了一个程序,将大量数据转换为 VML-GML 格式。问题是我需要使用 XmlWriter... 现在我的方法有问题: private void StartDocument() {
下面是代码。我的问题是,如果我想创建此文件,然后稍后使用 XmlWriter 重新打开它并向当前文件添加更多内容,该怎么做?喜欢使用 XmlWriter 进入并编辑此 xml using System
我在 msdn 文档中找到了异步使用 XmlWriter 的示例 http://msdn.microsoft.com/en-us/library/system.xml.xmlwriter.aspx a
我正在使用 XMLWriter http://www.php.net/manual/en/book.xmlwriter.php让我的网络客户端创建一个 XML 文件。一开始必须有一个具有很多属性的元素
我有一个 WCF 服务需要返回一个 XML 字符串。但似乎作者只想建立一个文件,而不是一个字符串。我试过: string nextXMLstring = ""; using (XmlWriter wr
我正在尝试生成此文档类型字符串: 这是我一直在尝试的: $writer.WriteDocType("games", $null , "transform.dtd", $null ) 我不完全确定如何
我试图将我的应用程序中的一些元素保存在 xml 文件中,但是当我开始使用以下代码开发它时: public static void WriteInFile(string savefilepath)
我有以下代码: MemoryStream ms = new MemoryStream(); XmlWriter w = XmlWriter.Create(ms); w.Writ
本文整理了Java中org.pageseeder.xmlwriter.XMLStringWriter类的一些代码示例,展示了XMLStringWriter类的具体用法。这些代码示例主要来源于Githu
System.Xml.XmlWriter的一个实例正在写入底层 Stream 吗?(不管 XmlWriter 的具体实现是什么) 那么为什么程序员没有方法可以从 XmlWriter 中检索 Strea
我将如何使用 XMlWriter 类创建这个字符串?我不断收到错误。 这是我尝试创建的 XML 字符串: 这是我试图用它生成的代码: using (XmlWriter writer = XmlWri
我在 XMLWriter 没有关闭时遇到了一些麻烦。我可以成功写入一次 XML 文件,但是如果我尝试再次写入(覆盖),则会出现异常: “该进程无法访问文件 'somefile.xml',因为它正被另一
我是一名优秀的程序员,十分优秀!