|
@@ -22,19 +22,16 @@ export function XmlToReact(
|
|
|
convertor?: TCodeConvertor
|
|
convertor?: TCodeConvertor
|
|
|
): React.ReactNode[] | undefined {
|
|
): React.ReactNode[] | undefined {
|
|
|
//console.log("html string:", text);
|
|
//console.log("html string:", text);
|
|
|
- text = text.replaceAll("<br>", "<div></div>");
|
|
|
|
|
const parser = new DOMParser();
|
|
const parser = new DOMParser();
|
|
|
- const xmlDoc = parser.parseFromString(
|
|
|
|
|
- `<body>${text}</body>`,
|
|
|
|
|
- "application/xml"
|
|
|
|
|
- );
|
|
|
|
|
|
|
+ const xmlDoc = parser.parseFromString(`<body>${text}</body>`, "text/html");
|
|
|
const x = xmlDoc.documentElement;
|
|
const x = xmlDoc.documentElement;
|
|
|
//console.log("解析成功", x);
|
|
//console.log("解析成功", x);
|
|
|
- return convert(x, wordWidget, convertor);
|
|
|
|
|
|
|
+ return convert(x.getElementsByTagName("body")[0], wordWidget, convertor);
|
|
|
|
|
|
|
|
function getAttr(node: ChildNode, key: number): Object {
|
|
function getAttr(node: ChildNode, key: number): Object {
|
|
|
const ele = node as Element;
|
|
const ele = node as Element;
|
|
|
const attr = ele.attributes;
|
|
const attr = ele.attributes;
|
|
|
|
|
+ //console.log("attr", attr);
|
|
|
let output: any = { key: key };
|
|
let output: any = { key: key };
|
|
|
for (let i = 0; i < attr.length; i++) {
|
|
for (let i = 0; i < attr.length; i++) {
|
|
|
if (attr[i].nodeType === 2) {
|
|
if (attr[i].nodeType === 2) {
|
|
@@ -61,8 +58,8 @@ export function XmlToReact(
|
|
|
|
|
|
|
|
switch (value.nodeType) {
|
|
switch (value.nodeType) {
|
|
|
case 1: //element node
|
|
case 1: //element node
|
|
|
- //console.log("tag name", value.nodeName);
|
|
|
|
|
- const tagName = value.nodeName;
|
|
|
|
|
|
|
+ const tagName = value.nodeName.toLowerCase();
|
|
|
|
|
+ console.log("tag", value.nodeName, tagName);
|
|
|
switch (tagName) {
|
|
switch (tagName) {
|
|
|
case "parsererror":
|
|
case "parsererror":
|
|
|
output.push(
|
|
output.push(
|
|
@@ -73,7 +70,7 @@ export function XmlToReact(
|
|
|
)
|
|
)
|
|
|
);
|
|
);
|
|
|
break;
|
|
break;
|
|
|
- case "MdTpl":
|
|
|
|
|
|
|
+ case "mdtpl":
|
|
|
output.push(
|
|
output.push(
|
|
|
React.createElement(
|
|
React.createElement(
|
|
|
MdTpl,
|
|
MdTpl,
|
|
@@ -82,15 +79,6 @@ export function XmlToReact(
|
|
|
)
|
|
)
|
|
|
);
|
|
);
|
|
|
break;
|
|
break;
|
|
|
- case "hr":
|
|
|
|
|
- output.push(
|
|
|
|
|
- React.createElement(
|
|
|
|
|
- Divider,
|
|
|
|
|
- getAttr(value, i),
|
|
|
|
|
- convert(value, wordWidget, convertor)
|
|
|
|
|
- )
|
|
|
|
|
- );
|
|
|
|
|
- break;
|
|
|
|
|
case "param":
|
|
case "param":
|
|
|
output.push(
|
|
output.push(
|
|
|
React.createElement(
|
|
React.createElement(
|