我正在使用 Javascript 和 PHP。
我像这样编写了一个 JSON:
[{"id": 32, "label": "Some Title", "type": "tinymce", "value": "<!DOCTYPE html>↵<html>↵<head>↵</head>↵<body>↵<p>asdasdasda 30-09-2017</p>↵</body>↵</html>"}]
真正的 JSON 是一个对象/数组的长数组。我正在创建一个 XML 文件(扩展名为 .xls),该文件将由 Excel 读取。对于普通字符,一切正常,但我无法输入这些特殊字符以使 Excel 读取该 XML 文件。我能做什么?
不能做的是:
- 使用其他格式:我需要读取扩展名为 .xls 的 XML。
- 更改 JSON 中的数据,它是外部的。
按照我的方式,tXML 结果如下:
<ss:Row>
<ss:Cell>
<ss:Data ss:Type="String"></ss:Data>
</ss:Cell>
<ss:Cell>
<ss:Data ss:Type="String"></ss:Data>
</ss:Cell>
<ss:Cell>
<ss:Data ss:Type="String"></ss:Data>
</ss:Cell>
<ss:Cell>
<ss:Data ss:Type="String">Objeto del contrato</ss:Data>
</ss:Cell>
<ss:Cell>
<ss:Data ss:Type="String"><!DOCTYPE html> // I don't need all the html tags, I just need to put the text of the <p> tags.
<html>
<head>
</head>
<body>
<p>asdasdasda 30-09-2017</p>
</body>
</html></ss:Data>//here ends the wrong text coming from the JSON
</ss:Cell>
</ss:Row>
这对于 Excel 来说是不正确的。
最佳答案
由于value
的内容属性是 HTML,您可能有一个隐藏元素(甚至是未附加到 DOM 的元素),设置其 innerHTML
到此属性的内容,然后使用您最喜欢的 DOM 操作库(例如 jQuery)来读取 p
的内容属性。
例如,使用 jQuery:
var text = $('<div/>').html(o.value).find('p').text()
或者,您可以使用正则表达式来匹配 <p>
之间的内容。和</p>
,尽管如果格式有所不同,这可能会更加脆弱。在这种情况下,您还需要解码 HTML 实体,这通常涉及执行与上面相同的大部分操作。
关于javascript - JSON 到 xml 的特殊字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39986305/