草庐IT

the_string

全部标签

c# - Xml 文档不应该作为 String 传递,如何激励?

看到像下面这样的方法签名时,我感到很不舒服:publicvoidfoo(StringtheXml);如果传递以UTF-16XML声明开头的字符串,foofo会是什么?在我看来,XML的类型应该是强XML类型,如DOM树或字节数组。因此,foo应该重新声明为:publicvoidfoo(Byte[]theXml);通常,程序员在读取theXml时会不必要地假设具有某种编码。通常只是希望文件库的默认值能猜对。我怎样才能激励我的同事这样做?不兼容的文档头编码声明的动机太弱了。(使用强类型或字节数组会阻止对文档进行天真的解析/修改。)我已经多次看到由于此类错误导致编码中断的情况。

xml - 验证 XSD 文件时出现问题 : The content type of a derived type and that of its base must both be mixed or both be element-only

我有以下XML架构:我收到以下错误:cos-ct-extends.1.4.3.2.2.1.a:Thecontenttypeofaderivedtypeandthatofitsbasemustbothbemixedorbothbeelement-only.Type'get-config_output_type__'iselementonly,butitsbasetypeisnot.如果我将两个元素都放在mixed="true"中,我会得到另一个错误:cos-nonambig:WC[##any]and"urn:ietf:params:xml:ns:netconf:base:1.0":dat

java - 如何在 Java 中将 XML 转换为 JSON 并避免解析器尝试将 String 解析为数字

我正在使用org.json.XML库将XML解析为JSON。http://www.json.org/javadoc/org/json/XML.html在我的XML文档中,有一个ID字段是用[0-9][a-z]随机生成的。它旨在成为一个字符串。一切正常,直到这个不幸的ID123456789e1234恰好是一个数字的科学记数法。下面是一段测试代码:publicclassXmlToJsonTest{publicstaticStringtestXML="123456789e1234";@TestpublicvoidtestXMLtoJSON()throwsJSONException{JSONO

xml - org.xml.sax.SAXParseException : The entity "ndash" was referenced, 但未声明

我正在解析以下......使用saxon9.jar,但得到...org.xml.sax.SAXParseException:Theentity"ndash"wasreferenced,butnotdeclared.如何为解析“声明”实体?我如何能够预测所有潜在实体? 最佳答案 您在DTD中声明它。由于您使用的是外部DTD,它必须为您声明它。tox.dtd是否包含ndash声明?如果没有,您需要做一些受以下启发的事情:%MathML;%SpeechML;]>例如,您可以使用定义ndash的标准XHTMLdtds之一。如果tox.dtd

xml - 如何解决 "The download of the specified resource has failed"错误?

0thenresponse.write"FILEEXIST"elseResponse.Writexd.parseError.reasonendif%>当我运行上面的代码时出现错误“指定资源的下载失败”如何解决? 最佳答案 我遇到了同样的问题,并认为这是从另一个域访问RSS提要的权限错误(可能是跨域?)。我能够在我的浏览器中提取RSS提要的内容。我对服务器的访问权限有限,而且它是高度安全的,所以我认为这是一些安全设置。我发现这种替代方法可以让我解决这个问题:SetxHttp=CreateObject("MSXML2.XMLHTTP")

java - 将 setParameter 与节点集一起使用时,会引发异常 "Invalid conversion from java.lang.String to node-set"

我正在尝试通过从我的Java代码调用XSLT来转换XML。我在将XML字符串作为参数传递给XSLT时遇到问题。这会导致异常:从“java.lang.String”到“node-set”的无效转换。这是调用XSLT的方法:Transformerl_transformer=TransformerFactory.newInstance().newTransformer(xslt_file_path);l_transformer.setOutputProperty(OutputKeys.ENCODING,"ISO-8859-1");l_transformer.setParameter("col

xml - 从 Either[String,Option[NodeSeq]] 中提取元素值的优雅方法

假设我得到了如下XML:helloworldagain我得到一个函数:getXmlStream,它具有以下签名:defgetXmlStream(xmlPath:String):Either[String,Option[NodeSeq]]当我调用getXmlStream并传入路径时,我会得到Either,左边是错误,右边是Option[NodeSeq]。现在,如果NodeSeq不是None,我需要获取元素和的值,它们分别是“hello”和“world”。我尝试将元素取出如下:valelems=(getXmlStream(xmlFilePath))match{caseLeft(error:

xml - Cvc-elt.1 : Cannot Find The Declaration Of Element 'soap:Envelope'

目前我正在为SOAPXML使用XSD,但是当我在FREEFORMATTER.COM上运行我的SOAPXML和XSD时,我得到这个错误:Cvc-elt.1:CannotFindTheDeclarationOfElement'soap:Envelope'..Line'1',Column'170'这是我的SOAPXML:1605000194qwertyu1605000194qwerty这是我的XSD:我应该怎么做才能消除错误? 最佳答案 首先,您必须将targetNamespace="http://tempuri.org/"添加到XSD的

.net - 一个同样快速的替代 SecurityElement.Escape(string) 来转义 XML 特殊字符?

我遇到了这个SecurityElement.Escape(string)方法来转义字符串中的特殊XML字符,但是考虑到我只是使用通用的System.Xml,它似乎奇怪地放置在安全命名空间中命名空间和基本的XML字符串,与安全无关。它转换以下特殊的XML字符。to>"to"'to'&to&是否有一个在XML命名空间中某处的同样快速的静态方法调用来转义这些字符,而不使用更高级别的类,如XmlReader、XmlDocument等? 最佳答案 选项的一个很好的总结如下:Differentwaystoesc

xml - XSLT/XML : convert apostrophe to a specific entity string

我希望能够使用XSLT将撇号转换为字符串'。我有以下XMLKing'sCollege我希望能够输出以下内容:King'sCollege我试过字符映射,但我认为这行不通,因为您只能用字符串替换单个字符。我也试过替换函数,但我不确定我能做些什么来确保完整的字符串确实出现在输出文件中?在我的最终解决方案中,我需要能够替换文本中的所有撇号,而不仅仅是一个节点。 最佳答案 使用charactermap就这么简单:当此转换应用于提供的XML文档时:King'sCollege产生了想要的、正确的结果:King'sCollege