我正在实现ECMA-357附件A中描述的所有可选E4X功能,而我在实现domNodeList(§A.1.2和§A.2.2)时遇到了问题.我如何创建自己的NodeList对象?
即使我创建了一个新的XMLDocument并将每个节点的domNode()表示附加到XMLList中,我仍然看不到如何创建包含所有内容的NodeList,因为通常会排除注释和处理指令.
有没有办法让E4X(ECMAScript)与NodeJS一起使用?
在没有麻烦/噪音的情况下输出光滑的html/xml真的很有帮助.
它使用SpiderMonkey工作正常,因为它是本机实现的,但它似乎不适用于NodeJS.
使用节点
$node
> var name = "World";
> var p = <p>Hello {name}</p>;
...
Run Code Online (Sandbox Code Playgroud)
使用spidermonkey
$js
js> var name = "World";
js> var p = <p>Hello {name}</p>;
Hello World
js>
Run Code Online (Sandbox Code Playgroud)
提前致谢
基本上我需要使用变量定义节点名称及其CDATA内容.
var nodeName:String = "tag";
var nodeValue:String = "<non-escaped-content>";
Run Code Online (Sandbox Code Playgroud)
天真我以为这会起作用:
var xml:XML = <doc><{nodeName}><![CDATA[{nodeValue}]]></{nodeName}>
Run Code Online (Sandbox Code Playgroud)
产出:
<doc><tag><![CDATA[{nodeValue}]]></tag></doc>
Run Code Online (Sandbox Code Playgroud)
在为FP9设计的以前版本的脚本中,我使用以下方法绕过了问题:
new XMLNode( XMLNodeType.XMLNodeType.CDATA_NODE, nodeValue ); // ...
Run Code Online (Sandbox Code Playgroud)
但这似乎在FP10中不起作用,我觉得这种方法无论如何都会以某种方式折旧.
谁有优雅的解决方案呢?
我有HTML实体的字符串变量:
var str = 'Some text & text';
我想将其转换(解码)为原始字符:
Some text & text.
JavaScript没有内置函数来实现想要的结果.我不能使用jQuery或DOM对象,因为我需要它在Google Apps脚本中工作.
我怎么能以简单的方式做到这一点?
我试图通过对C#的WebService调用来解析AS3中的一些XML.C#使用DataContract进行序列化,因此命名空间是非标准的.
这是xml的样子:
<User xmlns="http://schemas.datacontract.org/2004/07/UserDatabaseManipulation.POCO" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<Email>
<EmailString>
bill@whitehouse.gov
</EmailString>
</Email>
<Password>
<PasswordPlainText>
password
</PasswordPlainText>
</Password>
<ReferralDetails>
<ReferralEmail/>
<ServiceCreatedAt>
google
</ServiceCreatedAt>
</ReferralDetails>
<UserDetails>
<Address>
Penn Ave
</Address>
<City>
Washington DC
</City>
<Country>
USA
</Country>
<FirstName>
Bill
</FirstName>
<LastName>
Clinton
</LastName>
<State>
AK
</State>
<Zip>
11111
</Zip>
</UserDetails>
</User>
Run Code Online (Sandbox Code Playgroud)
因此,您可以看到我有一个用户,其中包括电子邮件,密码,推荐详细信息和用户详细信息.
这是我解析它和问题的地方:
private function onResult(event:ResultEvent):void
{
var n:Namespace = new Namespace("http://schemas.datacontract.org/2004/07/UserDatabaseManipulation.POCO");
use namespace n;
//This WORKS! ResultXml is loaded with the correct looking XML.
var resultXml:XML = new XML(event.result);
//This doesnt work! I …Run Code Online (Sandbox Code Playgroud) 考虑这个问题:
在非浏览器使用场景(Javascript HL7集成引擎)中使用Javascript/E4X,有一个变量包含一个可能有多个重复节点的XML片段.
<pets>
<pet type="dog">Barney</pet>
<pet type="cat">Socks</pet>
</pets>
Run Code Online (Sandbox Code Playgroud)
问题:如何获取Javascript/E4X中宠物节点数量的计数?
编辑:澄清一下,这个问题应该围绕E4X(ECMAScript for XML).向没有这些信息的人回答道歉.我应该事先研究并发布这个信息.
我想知道是否有办法使用E4X解析XML,或类似于E4X.
这样的框架/库是否存在?
谢谢!
E4X(Ecma-357)是ECMAScript的扩展,它将XML文字添加为第一类基元.这很棒,但只有Mozilla和Adobe的支持(没有V8和IE支持),从Web开发人员的角度来看,E4X几乎已经死了,它必须支持用户使用任何现代浏览器.
在JavaScript中实现XML文字还有哪些其他工作要做?有没有办法在JavaScript中获得类似于XML文字或E4X的东西,任何人都在努力?也许是框架的一些插件?
前几天我遇到过LunaScript(asana.com/Luna),它用类似JavaScript的语言实现了XML文字.这很好,但我可能永远不会在Asana工作,因此永远不会写LunaScript.
为什么E4X已被弃用并从某些浏览器中删除?
警告:E4X是obselete.默认情况下,它在Firefox 17中被禁用,并在Firefox 21中被完全删除.请使用DOMParser/DOMSerializer或非本机JXON算法.
https://developer.mozilla.org/en-US/docs/Archive/Web/E4X/Processing_XML_with_E4X
e4x ×10
javascript ×5
xml ×5
cdata ×1
dom ×1
firefox ×1
flash ×1
html-parsing ×1
java ×1
mirth ×1
node.js ×1
parsing ×1
primitive ×1
spidermonkey ×1
xml-literals ×1